OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
openswmm::ArdConfigData Struct Reference

Parsed model.ard state consumed by ArdEngine::init (phase E3). More...

#include <ArdConfigData.hpp>

Collaboration diagram for openswmm::ArdConfigData:

Public Member Functions

bool any_dispersion () const noexcept
 
bool any_transport_rows () const noexcept
 
bool any_engine_content () const noexcept
 

Public Attributes

bool configured = false
 True once a [PROCESS_COMPONENTS] transport.ard registration applied.
 
ArdDispersionMode dispersion_mode = ArdDispersionMode::OFF
 
double dispersion_value = 0.0
 Global coefficient for VALUE mode (display units, len²/s).
 
std::vector< int > conduit_disp_link
 
std::vector< double > conduit_disp_value
 
std::vector< ArdTransportRowboundary_rows
 
std::vector< ArdTransportRowsource_rows
 
std::vector< int > bc_node
 node index
 
std::vector< int > bc_msx
 ReactionData species index.
 
std::vector< double > bc_value
 VALUE-mode concentration.
 
std::vector< int > bc_ts
 timeseries table index, -1 ⇒ VALUE
 
std::vector< int > src_link
 link index (conduit)
 
std::vector< int > src_msx
 
std::vector< double > src_value
 VALUE-mode rate, internal conc·ft³/s.
 
std::vector< int > src_ts
 
bool transport_rows_resolved = false
 
double target_dx = 0.0
 
bool sets_scalar_scheme = false
 
bool sets_limiter = false
 
std::string detailed_output_path
 

Detailed Description

Parsed model.ard state consumed by ArdEngine::init (phase E3).

Filled by the transport.ard component apply hook at open; reset wholesale at the start of each apply so a reopened model never inherits stale rows. Per-conduit overrides are resolved to LINK indices at apply time (unknown names are fatal there, where the row text is still available for the diagnostic).

Member Function Documentation

◆ any_dispersion()

bool openswmm::ArdConfigData::any_dispersion ( ) const
inlinenoexcept
Here is the caller graph for this function:

◆ any_engine_content()

bool openswmm::ArdConfigData::any_engine_content ( ) const
inlinenoexcept

Anything in this config that only the ARD engine can honour — the bypass-warning predicate (lesson 10: silence is misleading whenever ANY of it is configured but the engine will not run).

Here is the call graph for this function:

◆ any_transport_rows()

bool openswmm::ArdConfigData::any_transport_rows ( ) const
inlinenoexcept
Here is the caller graph for this function:

Member Data Documentation

◆ bc_msx

std::vector<int> openswmm::ArdConfigData::bc_msx

ReactionData species index.

◆ bc_node

std::vector<int> openswmm::ArdConfigData::bc_node

node index

◆ bc_ts

std::vector<int> openswmm::ArdConfigData::bc_ts

timeseries table index, -1 ⇒ VALUE

◆ bc_value

std::vector<double> openswmm::ArdConfigData::bc_value

VALUE-mode concentration.

◆ boundary_rows

std::vector<ArdTransportRow> openswmm::ArdConfigData::boundary_rows

◆ conduit_disp_link

std::vector<int> openswmm::ArdConfigData::conduit_disp_link

◆ conduit_disp_value

std::vector<double> openswmm::ArdConfigData::conduit_disp_value

◆ configured

bool openswmm::ArdConfigData::configured = false

True once a [PROCESS_COMPONENTS] transport.ard registration applied.

◆ detailed_output_path

std::string openswmm::ArdConfigData::detailed_output_path

[TRANSPORT_OPTIONS] DETAILED_OUTPUT: per-cell CSV sidecar path, resolved at apply against the CONFIG file's directory (empty ⇒ off).

◆ dispersion_mode

ArdDispersionMode openswmm::ArdConfigData::dispersion_mode = ArdDispersionMode::OFF

◆ dispersion_value

double openswmm::ArdConfigData::dispersion_value = 0.0

Global coefficient for VALUE mode (display units, len²/s).

◆ sets_limiter

bool openswmm::ArdConfigData::sets_limiter = false

◆ sets_scalar_scheme

bool openswmm::ArdConfigData::sets_scalar_scheme = false

IO3c provenance: true when THIS component's file carried the SCALAR_SCHEME / LIMITER alias. The live values sit in ctx.options.fv (the aliases write through at apply), and the INP writer emits FV_SCALAR_SCHEME/FV_LIMITER only under FLOW_ROUTING FV — so on a non-FV deck this file is the ONLY carrier of that state across a save. The serializer emits the alias (with the CURRENT live value, so API/GUI edits persist) exactly when the flag says the file owned it; a file that never spelled the alias never gains one (lesson 196).

◆ source_rows

std::vector<ArdTransportRow> openswmm::ArdConfigData::source_rows

◆ src_link

std::vector<int> openswmm::ArdConfigData::src_link

link index (conduit)

◆ src_msx

std::vector<int> openswmm::ArdConfigData::src_msx

◆ src_ts

std::vector<int> openswmm::ArdConfigData::src_ts

ts index, -1 ⇒ VALUE (ts values are species-mass/s; engine converts)

◆ src_value

std::vector<double> openswmm::ArdConfigData::src_value

VALUE-mode rate, internal conc·ft³/s.

◆ target_dx

double openswmm::ArdConfigData::target_dx = 0.0

[TRANSPORT_OPTIONS] TARGET_DX: transport-mesh cell length under non-FV hydraulics (display length units; 0 ⇒ FV_CELL_LENGTH rules). Ignored with a warning under FLOW_ROUTING FV (the solver mesh governs) — the plan §8 open item resolved.

◆ transport_rows_resolved

bool openswmm::ArdConfigData::transport_rows_resolved = false

The documentation for this struct was generated from the following file: