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

#include <ArdEngine.hpp>

Collaboration diagram for openswmm::transport::ArdEngine:

Public Member Functions

bool init (SimulationContext &ctx)
 Build the transport mesh and size all state; call once after the model is fully resolved (Router::init done, pollutants known).
 
void step (SimulationContext &ctx, double dt)
 One transport step over the routing step dt.
 
bool initialized () const noexcept
 
const std::vector< std::string > & warnings () const noexcept
 
void absorbTreatedNodeConc (SimulationContext &ctx)
 E5b treatment interop: absorb treated node concentrations back into the node stores.
 
std::vector< double > totalMass (const SimulationContext &ctx) const
 

Member Function Documentation

◆ absorbTreatedNodeConc()

void openswmm::transport::ArdEngine::absorbTreatedNodeConc ( SimulationContext & ctx)

E5b treatment interop: absorb treated node concentrations back into the node stores.

Called by SWMMEngine AFTER QualitySolver::applyTreatment ran on the PUBLISHED nodes.conc. Only nodes with treatment defined are touched — untreated nodes keep their store mass bit-identical (a conc→mass→conc round trip is NOT exact in floating point, so a blanket absorb would break the no-treatment parity).

Here is the call graph for this function:
Here is the caller graph for this function:

◆ init()

bool openswmm::transport::ArdEngine::init ( SimulationContext & ctx)

Build the transport mesh and size all state; call once after the model is fully resolved (Router::init done, pollutants known).

Returns
false if the mesh could not be built — the caller must fall back to the legacy quality path and surface the warnings.
Here is the call graph for this function:

◆ initialized()

bool openswmm::transport::ArdEngine::initialized ( ) const
inlinenoexcept

◆ step()

void openswmm::transport::ArdEngine::step ( SimulationContext & ctx,
double dt )

One transport step over the routing step dt.

Pre-condition: the external quality loads for this step have been assembled into nodes.qual_mass_in / qual_vol_in (the QualitySolver loader stage). Post-condition: links.conc, links.conc_old, nodes.conc, nodes.conc_old updated.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ totalMass()

std::vector< double > openswmm::transport::ArdEngine::totalMass ( const SimulationContext & ctx) const

Total species mass currently held (cells + node stores), one entry per species — the conservation ledger the unit gates check.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ warnings()

const std::vector< std::string > & openswmm::transport::ArdEngine::warnings ( ) const
inlinenoexcept

The documentation for this class was generated from the following files: