![]() |
OpenSWMM Engine
6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
|
Treatment expression evaluator for water quality. More...
#include <string>#include <vector>Go to the source code of this file.
Classes | |
| struct | openswmm::treatment::Token |
| struct | openswmm::treatment::TreatExpr |
Namespaces | |
| namespace | openswmm |
| namespace | openswmm::treatment |
Functions | |
| int | openswmm::treatment::parse (const std::string &expr_str, TreatExpr &result) |
| Parse the strict C/R equation prefix and convert built-in-only RHS to postfix. | |
| int | openswmm::treatment::parse (const std::string &expr_str, TreatExpr &result, int(*pollut_lookup)(const std::string &name)) |
| Parse named treatment references using an optional native name-resolution function. | |
| int | openswmm::treatment::validate (const std::string &expr_str, std::string &msg, int &col) |
| Validate built-in-only treatment grammar with an editor diagnostic and source offset. | |
| int | openswmm::treatment::parse (const std::string &expr_str, TreatExpr &result, const std::vector< std::string > &pollut_names) |
| Parse named pollutant/co-treatment references against a stable name table. | |
| double | openswmm::treatment::evaluate (const TreatExpr &expr, double c, double dt, double hrt, double q, double v, double d, double area) |
| Evaluate built-in treatment postfix with scalar hydraulic inputs only. | |
| double | openswmm::treatment::evaluate (const TreatExpr &expr, double c, double dt, double hrt, double q, double v, double d, const double *cin, const double *removal, int n_pollut, double area, const double *cpollut) |
| Evaluate treatment postfix with optional pollutant concentration/removal views. | |
| double | openswmm::treatment::applyTreatment (const TreatExpr &expr, double c_in, double dt, double hrt, double q, double v, double d, double area) |
| Apply scalar-only treatment and clamp its output to removal-only concentration bounds. | |
Treatment expression evaluator for water quality.
Evaluates user-defined treatment expressions at nodes to modify pollutant concentrations. Expressions can reference:
Treatment expression strings have the form: "R = <expression>" — removal equation "C = <expression>" — concentration equation
Expressions are parsed at input time into a postfix token list using the Shunting-yard algorithm. Evaluation is a simple stack machine — vectorisable across nodes when all nodes use the same expression (batch eval with different variable values).