OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
MsxInitialQuality.hpp File Reference

U2 (2026-09-07) — [INITIAL_QUALITY] rows for MSX species. More...

#include <string>
#include <vector>
Include dependency graph for MsxInitialQuality.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  openswmm
 
namespace  openswmm::transport
 

Functions

std::vector< std::string > openswmm::transport::mirrorInitialQualityMsxRows (SimulationContext &ctx)
 
bool openswmm::transport::initialQualityHasMsxRow (const SimulationContext &ctx, bool is_link, int elem_idx, int species)
 

Detailed Description

U2 (2026-09-07) — [INITIAL_QUALITY] rows for MSX species.

[INITIAL_QUALITY] is the canonical home of a per-element initial value for ANY constituent — pollutant, reactions-component species, age, temperature. The reactions engines (LEGACY binding, ARD, LARD) seed MSX species from ReactionData::init_elem_*, the table [REACTION_QUALITY] NODE|LINK fills. This helper mirrors the MSX-kind rows of ctx.initial_quality into that table so every engine sees them without a fourth seed site:

  • called from PostParseResolver after the rows are classified,
  • called again by the reactions component whenever it re-parses its [REACTION_QUALITY] block (the block reset clears the table; the mirrored rows must come back).

A row the .rxn also carries (same element, same species) is an error — the same duplicate policy [INITIAL_QUALITY] applies to itself. The ReactionsWriter skips mirrored rows so a save emits each row once, in [INITIAL_QUALITY].

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