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

#include <MeshHeat.hpp>

Collaboration diagram for openswmm::twoD::MeshHeatState:

Public Member Functions

GroundHeatState & groundOwner (int i)
 Borrow the physical thermal owner selected for one surface cell.
 
const GroundHeatState & groundOwner (int i) const
 Borrow the physical thermal owner selected for one surface cell.
 
void refreshBedView (int i)
 Rebuild reported bed energy/capacity from the physical ground column's upper bed thickness.
 
void clear ()
 Reset mesh thermal flags, owned stores, diagnostics and borrowed bindings.
 

Public Attributes

SimulationContext * context = nullptr
 
bool enabled = false
 
bool surface = false
 
bool radiative = false
 
bool bed = false
 
bool surface_inherits = true
 
bool radiative_inherits = true
 
bool ground_column = false
 
GroundHeatState standalone_ground
 
GroundHeatState * aquifer_ground = nullptr
 
std::vector< unsigned char > aquifer_owned
 
std::vector< double > channel_footprint
 
double ground_now = 0
 
std::vector< double > bed_energy
 
std::vector< double > initial_bed_energy
 
std::vector< double > bed_capacity
 
std::vector< double > reported_temperature
 
std::vector< double > atmospheric_j
 
std::vector< double > radiative_j
 
std::vector< double > sensible_j
 
std::vector< double > ground_j
 
std::vector< double > water_bed_j
 
std::vector< double > water_j
 
std::vector< double > latent_j
 
std::vector< double > evaporated_m3
 
std::vector< int > failures
 
std::vector< double > ground_column_seconds
 
std::vector< unsigned char > hyporheic_eligible
 
int bed_species = 0
 
int bed_age_row = -1
 
int bed_temp_row = -1
 
std::vector< double > bed_pore_volume
 
std::vector< double > bed_carried_mass
 
std::vector< double > bed_initial_mass
 
std::vector< double > bed_exchange_mass
 
std::vector< double > bed_generated_age
 

Member Function Documentation

◆ clear()

void openswmm::twoD::MeshHeatState::clear ( )
inline

Reset mesh thermal flags, owned stores, diagnostics and borrowed bindings.

Note
Invalidates element views and releases standalone columns. Does not mutate borrowed aquifer, engine, snow or channel owners, nor undo their surface_owned flags. Requires exclusive access.

◆ groundOwner() [1/2]

GroundHeatState & openswmm::twoD::MeshHeatState::groundOwner ( int i)
inline

Borrow the physical thermal owner selected for one surface cell.

Parameters
[in]iValid aquifer_owned index, unchecked. A true mask entry requires a live aquifer_ground.
Returns
Borrowed aquifer owner for an owned cell, otherwise this object's standalone_ground. The returned owner may contain the full mesh; caller still indexes cell i. No ownership transfer, validation or allocation occurs. Binding and object lifetime must remain stable.
Here is the caller graph for this function:

◆ groundOwner() [2/2]

const GroundHeatState & openswmm::twoD::MeshHeatState::groundOwner ( int i) const
inline

Borrow the physical thermal owner selected for one surface cell.

Parameters
[in]iValid aquifer_owned index, unchecked. A true mask entry requires a live aquifer_ground.
Returns
Borrowed aquifer owner for an owned cell, otherwise this object's standalone_ground. The returned owner may contain the full mesh; caller still indexes cell i. No ownership transfer, validation or allocation occurs. Binding and object lifetime must remain stable.

◆ refreshBedView()

void openswmm::twoD::MeshHeatState::refreshBedView ( int i)

Rebuild reported bed energy/capacity from the physical ground column's upper bed thickness.

Parameters
[in]iValid prepared cell across ownership, physical layers, bed_energy/bed_capacity and context material arrays; unchecked.
Note
Returns for non-ground-column mode. Integrates fractional overlap with configured bed thickness, using canonical J and active J/K after reserved water. Writes derived bed vectors only; no physical energy or water is changed. Requires stable owner/material binding; no allocation.
Here is the call graph for this function:

Member Data Documentation

◆ aquifer_ground

GroundHeatState* openswmm::twoD::MeshHeatState::aquifer_ground = nullptr

◆ aquifer_owned

std::vector<unsigned char> openswmm::twoD::MeshHeatState::aquifer_owned

◆ atmospheric_j

std::vector<double> openswmm::twoD::MeshHeatState::atmospheric_j

◆ bed

bool openswmm::twoD::MeshHeatState::bed = false

◆ bed_age_row

int openswmm::twoD::MeshHeatState::bed_age_row = -1

◆ bed_capacity

std::vector<double> openswmm::twoD::MeshHeatState::bed_capacity

◆ bed_carried_mass

std::vector<double> openswmm::twoD::MeshHeatState::bed_carried_mass

◆ bed_energy

std::vector<double> openswmm::twoD::MeshHeatState::bed_energy

◆ bed_exchange_mass

std::vector<double> openswmm::twoD::MeshHeatState::bed_exchange_mass

◆ bed_generated_age

std::vector<double> openswmm::twoD::MeshHeatState::bed_generated_age

◆ bed_initial_mass

std::vector<double> openswmm::twoD::MeshHeatState::bed_initial_mass

◆ bed_pore_volume

std::vector<double> openswmm::twoD::MeshHeatState::bed_pore_volume

◆ bed_species

int openswmm::twoD::MeshHeatState::bed_species = 0

◆ bed_temp_row

int openswmm::twoD::MeshHeatState::bed_temp_row = -1

◆ channel_footprint

std::vector<double> openswmm::twoD::MeshHeatState::channel_footprint

◆ context

SimulationContext* openswmm::twoD::MeshHeatState::context = nullptr

◆ enabled

bool openswmm::twoD::MeshHeatState::enabled = false

◆ evaporated_m3

std::vector<double> openswmm::twoD::MeshHeatState::evaporated_m3

◆ failures

std::vector<int> openswmm::twoD::MeshHeatState::failures

◆ ground_column

bool openswmm::twoD::MeshHeatState::ground_column = false

◆ ground_column_seconds

std::vector<double> openswmm::twoD::MeshHeatState::ground_column_seconds

◆ ground_j

std::vector<double> openswmm::twoD::MeshHeatState::ground_j

◆ ground_now

double openswmm::twoD::MeshHeatState::ground_now = 0

◆ hyporheic_eligible

std::vector<unsigned char> openswmm::twoD::MeshHeatState::hyporheic_eligible

◆ initial_bed_energy

std::vector<double> openswmm::twoD::MeshHeatState::initial_bed_energy

◆ latent_j

std::vector<double> openswmm::twoD::MeshHeatState::latent_j

◆ radiative

bool openswmm::twoD::MeshHeatState::radiative = false

◆ radiative_inherits

bool openswmm::twoD::MeshHeatState::radiative_inherits = true

◆ radiative_j

std::vector<double> openswmm::twoD::MeshHeatState::radiative_j

◆ reported_temperature

std::vector<double> openswmm::twoD::MeshHeatState::reported_temperature

◆ sensible_j

std::vector<double> openswmm::twoD::MeshHeatState::sensible_j

◆ standalone_ground

GroundHeatState openswmm::twoD::MeshHeatState::standalone_ground

◆ surface

bool openswmm::twoD::MeshHeatState::surface = false

◆ surface_inherits

bool openswmm::twoD::MeshHeatState::surface_inherits = true

◆ water_bed_j

std::vector<double> openswmm::twoD::MeshHeatState::water_bed_j

◆ water_j

std::vector<double> openswmm::twoD::MeshHeatState::water_j

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