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

SoA storage for 2D surface routing state variables. More...

#include <SurfaceStateData.hpp>

Collaboration diagram for openswmm::twoD::SurfaceStateData:

Public Member Functions

void resize (int n_triangles, int n_vertices)
 
void save_state () noexcept
 
void reset_state () noexcept
 
void clear_reset_forcings () noexcept
 Clear RESET forcings after each step.
 
void update_statistics (const std::vector< double > &tri_area, double dt) noexcept
 Update cumulative statistics.
 

Public Attributes

std::vector< double > depth
 Overland flow depth ψ_o (m)
 
std::vector< double > head
 Total head h_o = z_s + ψ_o (m)
 
std::vector< double > grad_hx
 ∂h/∂x (unlimited gradient)
 
std::vector< double > grad_hy
 ∂h/∂y (unlimited gradient)
 
std::vector< double > grad_hx_lim
 Limited gradient X.
 
std::vector< double > grad_hy_lim
 Limited gradient Y.
 
std::vector< double > vert_head
 Head reconstructed at vertices.
 
std::vector< double > edge_flux
 Normal flux through each edge.
 
std::vector< double > rainfall
 Rainfall intensity (m/s)
 
std::vector< double > coupling_flux
 Exchange with SWMM node (m/s, + = into 2D)
 
std::vector< double > net_source
 Net source/sink per cell (m/s)
 
std::vector< int8_t > rainfall_forced
 0=computed, 1=override, 2=add
 
std::vector< int8_t > rainfall_persist
 0=reset, 1=persist
 
std::vector< double > rainfall_force_val
 Forced rainfall value.
 
std::vector< int8_t > coupling_forced
 0=computed, 1=override, 2=add
 
std::vector< int8_t > coupling_persist
 0=reset, 1=persist
 
std::vector< double > coupling_force_val
 Forced coupling value.
 
std::vector< double > old_depth
 Depth at start of coupling interval.
 
std::vector< double > stat_max_depth
 Maximum depth seen at each cell.
 
std::vector< double > stat_cum_volume
 Cumulative volume through cell.
 

Detailed Description

SoA storage for 2D surface routing state variables.

Per-triangle arrays are indexed [0, n_triangles). Edge arrays are flat 2D: [tri * 3 + edge]. Vertex arrays are indexed [0, n_vertices).

Member Function Documentation

◆ clear_reset_forcings()

void openswmm::twoD::SurfaceStateData::clear_reset_forcings ( )
inlinenoexcept

Clear RESET forcings after each step.

Here is the caller graph for this function:

◆ reset_state()

void openswmm::twoD::SurfaceStateData::reset_state ( )
inlinenoexcept

◆ resize()

void openswmm::twoD::SurfaceStateData::resize ( int  n_triangles,
int  n_vertices 
)
inline
Here is the caller graph for this function:

◆ save_state()

void openswmm::twoD::SurfaceStateData::save_state ( )
inlinenoexcept
Here is the caller graph for this function:

◆ update_statistics()

void openswmm::twoD::SurfaceStateData::update_statistics ( const std::vector< double > &  tri_area,
double  dt 
)
inlinenoexcept

Update cumulative statistics.

Here is the caller graph for this function:

Member Data Documentation

◆ coupling_flux

std::vector<double> openswmm::twoD::SurfaceStateData::coupling_flux

Exchange with SWMM node (m/s, + = into 2D)

◆ coupling_force_val

std::vector<double> openswmm::twoD::SurfaceStateData::coupling_force_val

Forced coupling value.

◆ coupling_forced

std::vector<int8_t> openswmm::twoD::SurfaceStateData::coupling_forced

0=computed, 1=override, 2=add

◆ coupling_persist

std::vector<int8_t> openswmm::twoD::SurfaceStateData::coupling_persist

0=reset, 1=persist

◆ depth

std::vector<double> openswmm::twoD::SurfaceStateData::depth

Overland flow depth ψ_o (m)

◆ edge_flux

std::vector<double> openswmm::twoD::SurfaceStateData::edge_flux

Normal flux through each edge.

◆ grad_hx

std::vector<double> openswmm::twoD::SurfaceStateData::grad_hx

∂h/∂x (unlimited gradient)

◆ grad_hx_lim

std::vector<double> openswmm::twoD::SurfaceStateData::grad_hx_lim

Limited gradient X.

◆ grad_hy

std::vector<double> openswmm::twoD::SurfaceStateData::grad_hy

∂h/∂y (unlimited gradient)

◆ grad_hy_lim

std::vector<double> openswmm::twoD::SurfaceStateData::grad_hy_lim

Limited gradient Y.

◆ head

std::vector<double> openswmm::twoD::SurfaceStateData::head

Total head h_o = z_s + ψ_o (m)

◆ net_source

std::vector<double> openswmm::twoD::SurfaceStateData::net_source

Net source/sink per cell (m/s)

◆ old_depth

std::vector<double> openswmm::twoD::SurfaceStateData::old_depth

Depth at start of coupling interval.

◆ rainfall

std::vector<double> openswmm::twoD::SurfaceStateData::rainfall

Rainfall intensity (m/s)

◆ rainfall_force_val

std::vector<double> openswmm::twoD::SurfaceStateData::rainfall_force_val

Forced rainfall value.

◆ rainfall_forced

std::vector<int8_t> openswmm::twoD::SurfaceStateData::rainfall_forced

0=computed, 1=override, 2=add

◆ rainfall_persist

std::vector<int8_t> openswmm::twoD::SurfaceStateData::rainfall_persist

0=reset, 1=persist

◆ stat_cum_volume

std::vector<double> openswmm::twoD::SurfaceStateData::stat_cum_volume

Cumulative volume through cell.

◆ stat_max_depth

std::vector<double> openswmm::twoD::SurfaceStateData::stat_max_depth

Maximum depth seen at each cell.

◆ vert_head

std::vector<double> openswmm::twoD::SurfaceStateData::vert_head

Head reconstructed at vertices.


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