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

Treatment expression parser (Shunting-yard) and evaluator (stack machine). More...

#include "Treatment.hpp"
#include <cmath>
#include <stack>
#include <algorithm>
#include <cctype>
#include <unordered_map>
Include dependency graph for Treatment.cpp:

Namespaces

namespace  openswmm
 
namespace  openswmm::treatment
 

Functions

int openswmm::treatment::parse (const std::string &expr_str, TreatExpr &result)
 Parse a treatment expression string into postfix tokens.
 
double openswmm::treatment::evaluate (const TreatExpr &expr, double c, double dt, double hrt, double q, double v, double d)
 Evaluate a treatment expression with given variable values.
 
double openswmm::treatment::applyTreatment (const TreatExpr &expr, double c_in, double dt, double hrt, double q, double v, double d)
 Apply treatment at a node for one pollutant.
 

Detailed Description

Treatment expression parser (Shunting-yard) and evaluator (stack machine).

The parser converts infix treatment expressions into postfix (RPN) token lists. The evaluator is a simple stack machine that processes the postfix token list with concrete variable values.

Numerically identical to the legacy treatmnt.c + mathexpr.c chain.

Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
License\n MIT License