39#ifndef OPENSWMM_REACTIONS_H
40#define OPENSWMM_REACTIONS_H
49#define SWMM_RXN_SCOPE_TERM 0
50#define SWMM_RXN_SCOPE_PIPE 1
51#define SWMM_RXN_SCOPE_TANK 2
54#define SWMM_RXN_FORM_NONE 0
55#define SWMM_RXN_FORM_RATE 1
56#define SWMM_RXN_FORM_EQUIL 2
57#define SWMM_RXN_FORM_FORMULA 3
79 int scope,
const char* expr,
char* errbuf,
int buflen,
int* col_out);
88 char* name,
int name_len,
int* is_wall,
89 char* units,
int units_len,
double* atol,
double* rtol);
96 char* name,
int name_len,
int* is_param,
double* value);
103 char* name,
int name_len,
char* expr,
int expr_len);
110 int species_idx,
int* form,
char* expr,
int expr_len);
118 const char* key,
char* value,
int value_len);
130 const char* name,
int is_wall,
const char* units,
double atol,
138 const char* name,
int is_param,
double value);
149 const char* name,
const char* expr);
163 int species_idx,
int form,
const char* expr);
167 const char* key,
const char* value);
172 int species_idx,
double* value);
174 int species_idx,
double value);
177 int entry_idx,
int* is_link,
int* elem_idx,
int* species_idx,
181 int is_link,
int elem_idx,
int species_idx,
double value);
197 int buflen,
int* needed_len);
206 const char* text,
char* errbuf,
int buflen);
216 const char* text,
char* errbuf,
int buflen);
223 const char* path_or_null);
233 int name_len,
char* description,
int desc_len);
240 int name_len,
int* arity);
#define SWMM_ENGINE_API
Definition openswmm_2d.h:53
void * SWMM_Engine
Opaque handle to an OpenSWMM Engine instance.
Definition openswmm_callbacks.h:51
OpenSWMM Engine — primary transparent C API (master header).
SWMM_ENGINE_API int swmm_reaction_validate_expression(SWMM_Engine engine, int scope, const char *expr, char *errbuf, int buflen, int *col_out)
Compile-only validation of a reaction expression against the model's live vocabulary (species,...
Definition openswmm_reactions_impl.cpp:115
SWMM_ENGINE_API int swmm_reaction_term_remove(SWMM_Engine engine, int idx)
Remove term idx. Refused while referenced.
Definition openswmm_reactions_impl.cpp:460
SWMM_ENGINE_API int swmm_reactions_serialize(SWMM_Engine engine, char *buf, int buflen, int *needed_len)
Canonical .rxn text from engine state.
Definition openswmm_reactions_impl.cpp:667
SWMM_ENGINE_API int swmm_reaction_species_get(SWMM_Engine engine, int idx, char *name, int name_len, int *is_wall, char *units, int units_len, double *atol, double *rtol)
Read one species: name, BULK(0)/WALL(1), units, tolerances.
Definition openswmm_reactions_impl.cpp:158
SWMM_ENGINE_API int swmm_reactions_save(SWMM_Engine engine, const char *path_or_null)
Serialize to the bound component config path (or path_or_null when given). SWMM_ERR_BADPARAM when nei...
Definition openswmm_reactions_impl.cpp:762
SWMM_ENGINE_API int swmm_reaction_hydvar_count(void)
Number of built-in hydraulic variables (D Q U RE US FF AV HRT DT TEMP).
Definition openswmm_reactions_impl.cpp:794
SWMM_ENGINE_API int swmm_reaction_function_get(int idx, char *name, int name_len, int *arity)
Read one function's name and arity.
Definition openswmm_reactions_impl.cpp:814
SWMM_ENGINE_API int swmm_reaction_term_add(SWMM_Engine engine, const char *name, const char *expr)
Add an intermediate term (referencable by later terms only).
Definition openswmm_reactions_impl.cpp:425
SWMM_ENGINE_API int swmm_reaction_species_add(SWMM_Engine engine, const char *name, int is_wall, const char *units, double atol, double rtol)
Declare a species (is_wall: 0 BULK, 1 WALL; atol/rtol 0 = global).
Definition openswmm_reactions_impl.cpp:277
SWMM_ENGINE_API int swmm_reaction_term_count(SWMM_Engine engine)
Number of [REACTION_TERMS] entries.
Definition openswmm_reactions_impl.cpp:197
SWMM_ENGINE_API int swmm_reaction_init_elem_set(SWMM_Engine engine, int is_link, int elem_idx, int species_idx, double value)
Upsert on (is_link, elem_idx, species_idx). Value must be >= 0.
Definition openswmm_reactions_impl.cpp:622
SWMM_ENGINE_API int swmm_reaction_function_count(void)
Number of built-in functions (EXP … TAN arity 1; MIN MAX POW 2).
Definition openswmm_reactions_impl.cpp:810
SWMM_ENGINE_API int swmm_reaction_coeff_add(SWMM_Engine engine, const char *name, int is_param, double value)
Add a coefficient (is_param: 1 PARAMETER, 0 CONSTANT).
Definition openswmm_reactions_impl.cpp:374
SWMM_ENGINE_API int swmm_reaction_init_global_set(SWMM_Engine engine, int species_idx, double value)
Definition openswmm_reactions_impl.cpp:585
SWMM_ENGINE_API int swmm_reaction_init_elem_remove(SWMM_Engine engine, int entry_idx)
Definition openswmm_reactions_impl.cpp:647
SWMM_ENGINE_API int swmm_reactions_check_text(SWMM_Engine engine, const char *text, char *errbuf, int buflen)
Dry-run full-file parse+compile of .rxn TEXT against this model. Zero state change,...
Definition openswmm_reactions_impl.cpp:743
SWMM_ENGINE_API int swmm_reaction_coeff_remove(SWMM_Engine engine, int idx)
Remove coefficient idx. Refused while referenced.
Definition openswmm_reactions_impl.cpp:404
SWMM_ENGINE_API int swmm_reaction_term_set_expr(SWMM_Engine engine, int idx, const char *expr)
Replace term idx's expression.
Definition openswmm_reactions_impl.cpp:444
SWMM_ENGINE_API int swmm_reaction_coeff_count(SWMM_Engine engine)
Number of [REACTION_COEFFICIENTS] entries.
Definition openswmm_reactions_impl.cpp:176
SWMM_ENGINE_API int swmm_reaction_coeff_get(SWMM_Engine engine, int idx, char *name, int name_len, int *is_param, double *value)
Read one coefficient: name, PARAMETER(1)/CONSTANT(0), value.
Definition openswmm_reactions_impl.cpp:182
SWMM_ENGINE_API int swmm_reaction_species_count(SWMM_Engine engine)
Number of declared MSX species (0 when no reactions configured).
Definition openswmm_reactions_impl.cpp:153
SWMM_ENGINE_API int swmm_reaction_hydvar_get(int idx, char *name, int name_len, char *description, int desc_len)
Read one hydraulic variable's name and description.
Definition openswmm_reactions_impl.cpp:798
SWMM_ENGINE_API int swmm_reaction_expr_set(SWMM_Engine engine, int scope, int species_idx, int form, const char *expr)
Set (or clear, with SWMM_RXN_FORM_NONE) a species' expression in one scope (PIPE or TANK).
Definition openswmm_reactions_impl.cpp:478
SWMM_ENGINE_API int swmm_reaction_init_elem_get(SWMM_Engine engine, int entry_idx, int *is_link, int *elem_idx, int *species_idx, double *value)
Definition openswmm_reactions_impl.cpp:605
SWMM_ENGINE_API int swmm_reaction_expr_get(SWMM_Engine engine, int scope, int species_idx, int *form, char *expr, int expr_len)
Read a species' expression in one scope (PIPE or TANK).
Definition openswmm_reactions_impl.cpp:217
SWMM_ENGINE_API int swmm_reaction_species_remove(SWMM_Engine engine, int idx)
Remove species idx. Refused while any expression references it.
Definition openswmm_reactions_impl.cpp:316
SWMM_ENGINE_API int swmm_reaction_init_global_get(SWMM_Engine engine, int species_idx, double *value)
Definition openswmm_reactions_impl.cpp:574
SWMM_ENGINE_API int swmm_reaction_option_set(SWMM_Engine engine, const char *key, const char *value)
Set a [REACTION_OPTIONS] value from its canonical token.
Definition openswmm_reactions_impl.cpp:506
SWMM_ENGINE_API int swmm_reactions_apply_text(SWMM_Engine engine, const char *text, char *errbuf, int buflen)
Transactional replace of the whole reaction system from .rxn TEXT.
Definition openswmm_reactions_impl.cpp:754
SWMM_ENGINE_API int swmm_reaction_init_elem_count(SWMM_Engine engine)
Definition openswmm_reactions_impl.cpp:599
SWMM_ENGINE_API int swmm_reaction_coeff_set_value(SWMM_Engine engine, int idx, double value)
Change a coefficient's value.
Definition openswmm_reactions_impl.cpp:393
SWMM_ENGINE_API int swmm_reaction_term_get(SWMM_Engine engine, int idx, char *name, int name_len, char *expr, int expr_len)
Read one term: name and its source expression.
Definition openswmm_reactions_impl.cpp:203
SWMM_ENGINE_API int swmm_reaction_option_get(SWMM_Engine engine, const char *key, char *value, int value_len)
Read a [REACTION_OPTIONS] value as its canonical token.
Definition openswmm_reactions_impl.cpp:236