#include <ReactionData.hpp>
◆ clear()
| void openswmm::ReactionData::clear |
( |
| ) |
|
|
inline |
◆ find_coef()
| int openswmm::ReactionData::find_coef |
( |
std::string_view | n | ) |
const |
|
inline |
◆ find_species()
| int openswmm::ReactionData::find_species |
( |
std::string_view | n | ) |
const |
|
inline |
◆ find_term()
| int openswmm::ReactionData::find_term |
( |
std::string_view | n | ) |
const |
|
inline |
◆ n_species()
| int openswmm::ReactionData::n_species |
( |
| ) |
const |
|
inlinenoexcept |
◆ area_units
◆ atol
| double openswmm::ReactionData::atol = 1.0e-6 |
◆ coef_is_param
| std::vector<uint8_t> openswmm::ReactionData::coef_is_param |
1 = PARAMETER (overridable), 0 = CONSTANT
◆ coef_name
| std::vector<std::string> openswmm::ReactionData::coef_name |
◆ coef_value
| std::vector<double> openswmm::ReactionData::coef_value |
hot (global values; per-element overrides arrive with [REACTION_PARAMETERS])
◆ compiled
| bool openswmm::ReactionData::compiled = false |
R2 compile pass succeeded.
◆ configured
| bool openswmm::ReactionData::configured = false |
a reactions component applied
◆ coupling
◆ default_temp_c
| double openswmm::ReactionData::default_temp_c = 20.0 |
TEMP's value when no heat-transport temperature exists for the element (HEAT_TRANSPORT off, or state not yet seeded). 20 degC is the standard water-quality reference temperature.
◆ init_elem_idx
| std::vector<int> openswmm::ReactionData::init_elem_idx |
◆ init_elem_is_link
| std::vector<uint8_t> openswmm::ReactionData::init_elem_is_link |
0 = NODE row, 1 = LINK row
◆ init_elem_species
| std::vector<int> openswmm::ReactionData::init_elem_species |
◆ init_elem_value
| std::vector<double> openswmm::ReactionData::init_elem_value |
◆ init_global
| std::vector<double> openswmm::ReactionData::init_global |
◆ msx_ext_mass_in
| std::vector<double> openswmm::ReactionData::msx_ext_mass_in |
◆ msx_link_conc
| std::vector<double> openswmm::ReactionData::msx_link_conc |
◆ msx_node_conc
| std::vector<double> openswmm::ReactionData::msx_node_conc |
◆ pipe_expr
| std::vector<RxExprSpan> openswmm::ReactionData::pipe_expr |
per species (len 0 ⇒ none)
◆ pipe_expr_src
| std::vector<std::string> openswmm::ReactionData::pipe_expr_src |
◆ pipe_form
◆ rate_units
◆ registry_base
| int openswmm::ReactionData::registry_base = -1 |
first MSX index in the registry
◆ rtol
| double openswmm::ReactionData::rtol = 1.0e-4 |
◆ solver
Default integrator.
RK5, not an implicit solver. Measured substeps for one routing step, at the shipping tolerances below and at 1e-10/1e-8:
| case | RK5 | ROS2 | BDF2 |
| first-order decay, default | 5 | 134 | 197 |
| stiff (λ ratio 1e6), default | 2682 | 281 | 408 |
| stiff, atol 1e-10 | 2744 | 26938 | 39693 |
RK5 wins the common case by ~27x. It loses the stiff case at loose tolerance by ~10x but still COMPLETES, with the slow mode exact. At tight tolerance it beats both implicit solvers on the stiff problem, because RK5's step is STABILITY-limited (nearly flat in tolerance) while the Rosenbrock/BDF pairs are ACCURACY-limited and scale as sqrt(tol).
The cliff: RK5 costs about lambda_fast*dt/3.3 substeps, so past lambda_fast*dt ~ 3e5 it hits kMaxSubsteps and fails. That failure is loud and names ROS2/BDF2 as the remedy (ReactionIntegrator's substep-cap message) — a slow default that fails legibly beats an implicit default that is slower everywhere except the stiff-and-loose corner.
◆ species_atol
| std::vector<double> openswmm::ReactionData::species_atol |
◆ species_is_wall
| std::vector<uint8_t> openswmm::ReactionData::species_is_wall |
◆ species_name
| std::vector<std::string> openswmm::ReactionData::species_name |
◆ species_rtol
| std::vector<double> openswmm::ReactionData::species_rtol |
◆ species_units
| std::vector<std::string> openswmm::ReactionData::species_units |
◆ tank_expr
| std::vector<RxExprSpan> openswmm::ReactionData::tank_expr |
◆ tank_expr_src
| std::vector<std::string> openswmm::ReactionData::tank_expr_src |
◆ tank_form
◆ term_expr
| std::vector<RxExprSpan> openswmm::ReactionData::term_expr |
per term, in-order evaluation
◆ term_expr_src
| std::vector<std::string> openswmm::ReactionData::term_expr_src |
◆ term_name
| std::vector<std::string> openswmm::ReactionData::term_name |
◆ timestep
| double openswmm::ReactionData::timestep = 0.0 |
◆ token_pool
| std::vector<RxToken> openswmm::ReactionData::token_pool |
◆ warned_react_failure
| bool openswmm::ReactionData::warned_react_failure = false |
The documentation for this struct was generated from the following file:
- /home/runner/work/openswmm.engine/openswmm.engine/src/engine/data/ReactionData.hpp