OpenSWMM Engine  6.0.0-alpha.3
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.3)
Loading...
Searching...
No Matches
openswmm_forcing.h
Go to the documentation of this file.
1
45
46#ifndef OPENSWMM_FORCING_H
47#define OPENSWMM_FORCING_H
48
49#include "openswmm_callbacks.h"
50
51#ifdef OPENSWMM_ENGINE_STATIC
52# define SWMM_ENGINE_API
53#else
54# ifdef _WIN32
55# ifdef openswmm_engine_EXPORTS
56# define SWMM_ENGINE_API __declspec(dllexport)
57# else
58# define SWMM_ENGINE_API __declspec(dllimport)
59# endif
60# else
61# define SWMM_ENGINE_API __attribute__((visibility("default")))
62# endif
63#endif
64
65#ifdef __cplusplus
66extern "C" {
67#endif
68
69/* =========================================================================
70 * Enumerations
71 * ========================================================================= */
72
79
85
102
103/* =========================================================================
104 * Node forcing
105 * ========================================================================= */
106
119 SWMM_Engine engine, int idx, double value, int mode, int persist);
120
133 SWMM_Engine engine, int idx, double value, int mode, int persist);
134
148 SWMM_Engine engine, int node_idx, int pollutant_idx,
149 double mass_rate, int mode, int persist);
150
151/* =========================================================================
152 * Link forcing
153 * ========================================================================= */
154
167 SWMM_Engine engine, int idx, double value, int mode, int persist);
168
181 SWMM_Engine engine, int idx, double value, int mode, int persist);
182
200 SWMM_Engine engine, int link_idx, int pollutant_idx,
201 double value, int mode, int persist);
202
203/* =========================================================================
204 * Subcatchment forcing
205 * ========================================================================= */
206
219 SWMM_Engine engine, int idx, double value, int mode, int persist);
220
240 SWMM_Engine engine, int idx, double value, int mode, int persist);
241
260 SWMM_Engine engine, int idx, double value, int mode, int persist);
261
277
278/* =========================================================================
279 * Climate forcing (system-wide)
280 * ========================================================================= */
281
300 SWMM_Engine engine, double value, int mode, int persist);
301
311
327 SWMM_Engine engine, double value, int mode, int persist);
328
338
357 SWMM_Engine engine, double value, int mode, int persist);
358
368
378
379/* =========================================================================
380 * Gage forcing
381 * ========================================================================= */
382
395 SWMM_Engine engine, int idx, double value, int mode, int persist);
396
397/* =========================================================================
398 * Clear forcing
399 * ========================================================================= */
400
410SWMM_ENGINE_API int swmm_forcing_clear(SWMM_Engine engine, int type, int idx);
411
420
421#ifdef __cplusplus
422} /* extern "C" */
423#endif
424
425#endif /* OPENSWMM_FORCING_H */
SWMM_ENGINE_API int swmm_forcing_climate_temperature(SWMM_Engine engine, double value, int mode, int persist)
Prescribe the air temperature used for snowmelt and temperature-derived evaporation.
Definition openswmm_forcing_impl.cpp:204
SWMM_ENGINE_API int swmm_climate_get_wind_speed(SWMM_Engine engine, double *value)
Get the current wind speed (read-only).
Definition openswmm_forcing_impl.cpp:256
SWMM_ENGINE_API int swmm_forcing_node_head_boundary(SWMM_Engine engine, int idx, double value, int mode, int persist)
Force a head boundary at an outfall node.
Definition openswmm_forcing_impl.cpp:52
SWMM_ENGINE_API int swmm_forcing_gage_rainfall(SWMM_Engine engine, int idx, double value, int mode, int persist)
Force rainfall on a rain gage (affects all linked subcatchments).
Definition openswmm_forcing_impl.cpp:325
SWMM_ENGINE_API int swmm_forcing_clear(SWMM_Engine engine, int type, int idx)
Clear forcing on a specific element and channel.
Definition openswmm_forcing_impl.cpp:345
SWMM_ENGINE_API int swmm_forcing_climate_evap(SWMM_Engine engine, double value, int mode, int persist)
Prescribe the system-wide evaporation rate.
Definition openswmm_forcing_impl.cpp:266
SWMM_ENGINE_API int swmm_climate_get_temperature(SWMM_Engine engine, double *value)
Get the current air temperature (read-only).
Definition openswmm_forcing_impl.cpp:227
SWMM_ENGINE_API int swmm_forcing_link_setting(SWMM_Engine engine, int idx, double value, int mode, int persist)
Force a control setting on a link (pump, orifice, weir, outlet).
Definition openswmm_forcing_impl.cpp:112
SWMM_ENGINE_API int swmm_forcing_node_lat_inflow(SWMM_Engine engine, int idx, double value, int mode, int persist)
Force a lateral inflow at a node.
Definition openswmm_forcing_impl.cpp:36
SWMM_ENGINE_API int swmm_forcing_subcatch_rainfall(SWMM_Engine engine, int idx, double value, int mode, int persist)
Force rainfall on a subcatchment (bypasses gage lookup).
Definition openswmm_forcing_impl.cpp:132
SWMM_ENGINE_API int swmm_forcing_node_quality(SWMM_Engine engine, int node_idx, int pollutant_idx, double mass_rate, int mode, int persist)
Force a quality mass flux at a node.
Definition openswmm_forcing_impl.cpp:72
SWMM_ENGINE_API int swmm_forcing_subcatch_snowfall(SWMM_Engine engine, int idx, double value, int mode, int persist)
Prescribe snowfall on a subcatchment.
Definition openswmm_forcing_impl.cpp:179
SWMM_ENGINE_API int swmm_forcing_clear_all(SWMM_Engine engine)
Clear ALL forcings on ALL elements.
Definition openswmm_forcing_impl.cpp:419
SWMM_ENGINE_API int swmm_climate_set_dry_only(SWMM_Engine engine, int flag)
Set the evaporation DRY_ONLY option at runtime.
Definition openswmm_forcing_impl.cpp:285
SWMM_ENGINE_API int swmm_forcing_link_quality(SWMM_Engine engine, int link_idx, int pollutant_idx, double value, int mode, int persist)
Force pollutant quality on a link.
Definition openswmm_forcing_impl.cpp:301
SWMM_ENGINE_API int swmm_climate_get_dry_only(SWMM_Engine engine, int *flag)
Get the evaporation DRY_ONLY option.
Definition openswmm_forcing_impl.cpp:293
SWMM_ENGINE_API int swmm_forcing_link_flow(SWMM_Engine engine, int idx, double value, int mode, int persist)
Force a flow in a link.
Definition openswmm_forcing_impl.cpp:96
SWMM_ENGINE_API int swmm_forcing_climate_wind(SWMM_Engine engine, double value, int mode, int persist)
Prescribe the wind speed used in rain-on-snow melt.
Definition openswmm_forcing_impl.cpp:237
SWMM_ENGINE_API int swmm_forcing_subcatch_evap(SWMM_Engine engine, int idx, double value, int mode, int persist)
Prescribe a potential evapotranspiration (PET) rate on a subcatchment.
Definition openswmm_forcing_impl.cpp:148
SWMM_ENGINE_API int swmm_climate_get_evap_rate(SWMM_Engine engine, double *value)
Get the current climate-derived evaporation rate.
Definition openswmm_forcing_impl.cpp:168
#define SWMM_ENGINE_API
Definition openswmm_2d.h:37
Callback function typedefs for the OpenSWMM Engine C API.
void * SWMM_Engine
Opaque handle to an OpenSWMM Engine instance.
Definition openswmm_callbacks.h:35
SWMM_ForcingMode
How the forcing value is applied relative to the computed value.
Definition openswmm_forcing.h:74
@ SWMM_FORCING_OVERRIDE
Definition openswmm_forcing.h:76
@ SWMM_FORCING_NONE
Definition openswmm_forcing.h:75
@ SWMM_FORCING_ADD
Definition openswmm_forcing.h:77
SWMM_ForcingPersist
Whether the forcing persists across timesteps.
Definition openswmm_forcing.h:81
@ SWMM_FORCING_PERSIST
Definition openswmm_forcing.h:83
@ SWMM_FORCING_RESET
Definition openswmm_forcing.h:82
SWMM_ForcingType
Forcing channel identifier (for targeted clear).
Definition openswmm_forcing.h:87
@ SWMM_FORCE_NODE_HEAD_BOUNDARY
Definition openswmm_forcing.h:89
@ SWMM_FORCE_LINK_QUALITY
Definition openswmm_forcing.h:100
@ SWMM_FORCE_NODE_QUALITY
Definition openswmm_forcing.h:90
@ SWMM_FORCE_LINK_SETTING
Definition openswmm_forcing.h:92
@ SWMM_FORCE_SUBCATCH_EVAP
Definition openswmm_forcing.h:94
@ SWMM_FORCE_CLIMATE_WIND
Definition openswmm_forcing.h:97
@ SWMM_FORCE_CLIMATE_TEMPERATURE
Definition openswmm_forcing.h:96
@ SWMM_FORCE_LINK_FLOW
Definition openswmm_forcing.h:91
@ SWMM_FORCE_CLIMATE_EVAP
Definition openswmm_forcing.h:99
@ SWMM_FORCE_SUBCATCH_SNOWFALL
Definition openswmm_forcing.h:98
@ SWMM_FORCE_GAGE_RAINFALL
Definition openswmm_forcing.h:95
@ SWMM_FORCE_SUBCATCH_RAINFALL
Definition openswmm_forcing.h:93
@ SWMM_FORCE_NODE_LAT_INFLOW
Definition openswmm_forcing.h:88