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

Runtime bed state, one entry per LINK. More...

#include <BedZoneData.hpp>

Collaboration diagram for openswmm::BedZoneState:

Public Member Functions

void resizeCells (int n_cells, int n_spec, double t_init)
 
void resize (int n_links, int n_spec, double t_init)
 
bool sized (int n_links) const noexcept
 
void clear ()
 

Public Attributes

std::vector< double > link_temp
 
std::vector< double > link_conc
 
int n_species = 0
 
bool seeded = false
 
std::vector< double > cell_temp
 
std::vector< double > cell_conc
 
int cell_n_species = 0
 
bool cells_seeded = false
 

Detailed Description

Runtime bed state, one entry per LINK.

Sized to links rather than to the active engine's own elements (ARD cells, LARD parcels) because the bed does not move and does not subdivide: it is a property of the conduit, and every engine can address it by link index without agreeing on a mesh.

Warning
Under EULERIAN_ARD this means the bed exchanges with the link's VOLUME-WEIGHTED MEAN temperature, not cell by cell, so a bed under a long conduit cannot resolve a front the way the water above it does. That is a real loss of resolution against the reference (whose HTS elements map 1:1 onto channel elements) and it is recorded here rather than in a handoff because the next person to add a cell-resolved bed needs to find it attached to the array they would have to widen.

Member Function Documentation

◆ clear()

void openswmm::BedZoneState::clear ( )
inline

◆ resize()

void openswmm::BedZoneState::resize ( int n_links,
int n_spec,
double t_init )
inline

◆ resizeCells()

void openswmm::BedZoneState::resizeCells ( int n_cells,
int n_spec,
double t_init )
inline

◆ sized()

bool openswmm::BedZoneState::sized ( int n_links) const
inlinenoexcept

Member Data Documentation

◆ cell_conc

std::vector<double> openswmm::BedZoneState::cell_conc

SPECIES-MAJOR [s * n_cells + c] — cell_phi's own layout, because the ARD binding walks both arrays in the same loop and two layouts in one loop is how a stride bug reads plausibly.

◆ cell_n_species

int openswmm::BedZoneState::cell_n_species = 0

◆ cell_temp

std::vector<double> openswmm::BedZoneState::cell_temp

[cell], °C

◆ cells_seeded

bool openswmm::BedZoneState::cells_seeded = false

◆ link_conc

std::vector<double> openswmm::BedZoneState::link_conc

[link * n_species + s], concentration in the bed water, in each species' own units. Species-minor to match node_mass_'s layout in the ARD store, which is the binding most likely to index it.

◆ link_temp

std::vector<double> openswmm::BedZoneState::link_temp

[link], °C

◆ n_species

int openswmm::BedZoneState::n_species = 0

◆ seeded

bool openswmm::BedZoneState::seeded = false

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