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

SoA parameter block for all links of one cross-section shape. More...

#include <XSectBatch.hpp>

Collaboration diagram for openswmm::ShapeGroup:

Public Member Functions

void resize (int n)
 Resize all arrays to n elements.
 

Public Attributes

XSectShape shape = XSectShape::DUMMY
 
int count = 0
 
std::vector< int > link_idx
 link_idx[i] = index in SimulationContext
 
std::vector< double > y_full
 Full depth (ft)
 
std::vector< double > a_full
 Full area (ft2)
 
std::vector< double > r_full
 Hyd. radius at full (ft)
 
std::vector< double > s_full
 Section factor at full.
 
std::vector< double > w_max
 Max width (ft)
 
std::vector< double > inv_y_full
 1.0 / y_full (or 0 if y_full==0)
 
std::vector< double > y_bot
 
std::vector< double > a_bot
 
std::vector< double > s_bot
 
std::vector< double > r_bot
 
std::vector< const double * > area_tables
 Per-link area table.
 
std::vector< const double * > hrad_tables
 Per-link hyd-rad table.
 
std::vector< const double * > width_tables
 Per-link width table.
 
int transect_tbl_size = 0
 Table size (same for all)
 
std::vector< double > buf_d
 Gather buffer for depths.
 
std::vector< double > buf_r
 Scatter buffer for results.
 
std::vector< double > buf_r2
 Second scatter buffer (for fused ops)
 

Detailed Description

SoA parameter block for all links of one cross-section shape.

All arrays have size count. The link_idx array maps each position back to the original link index in SimulationContext so results can be scattered back to the global arrays.

Parameter arrays are populated once at initialisation from the per-link XSectParams and do not change during simulation.

Member Function Documentation

◆ resize()

void openswmm::ShapeGroup::resize ( int  n)

Resize all arrays to n elements.

Member Data Documentation

◆ a_bot

std::vector<double> openswmm::ShapeGroup::a_bot

◆ a_full

std::vector<double> openswmm::ShapeGroup::a_full

Full area (ft2)

◆ area_tables

std::vector<const double*> openswmm::ShapeGroup::area_tables

Per-link area table.

◆ buf_d

std::vector<double> openswmm::ShapeGroup::buf_d
mutable

Gather buffer for depths.

◆ buf_r

std::vector<double> openswmm::ShapeGroup::buf_r
mutable

Scatter buffer for results.

◆ buf_r2

std::vector<double> openswmm::ShapeGroup::buf_r2
mutable

Second scatter buffer (for fused ops)

◆ count

int openswmm::ShapeGroup::count = 0

◆ hrad_tables

std::vector<const double*> openswmm::ShapeGroup::hrad_tables

Per-link hyd-rad table.

◆ inv_y_full

std::vector<double> openswmm::ShapeGroup::inv_y_full

1.0 / y_full (or 0 if y_full==0)

◆ link_idx

std::vector<int> openswmm::ShapeGroup::link_idx

link_idx[i] = index in SimulationContext

◆ r_bot

std::vector<double> openswmm::ShapeGroup::r_bot

◆ r_full

std::vector<double> openswmm::ShapeGroup::r_full

Hyd. radius at full (ft)

◆ s_bot

std::vector<double> openswmm::ShapeGroup::s_bot

◆ s_full

std::vector<double> openswmm::ShapeGroup::s_full

Section factor at full.

◆ shape

XSectShape openswmm::ShapeGroup::shape = XSectShape::DUMMY

◆ transect_tbl_size

int openswmm::ShapeGroup::transect_tbl_size = 0

Table size (same for all)

◆ w_max

std::vector<double> openswmm::ShapeGroup::w_max

Max width (ft)

◆ width_tables

std::vector<const double*> openswmm::ShapeGroup::width_tables

Per-link width table.

◆ y_bot

std::vector<double> openswmm::ShapeGroup::y_bot

◆ y_full

std::vector<double> openswmm::ShapeGroup::y_full

Full depth (ft)


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