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

Canonical unique interior-edge layout + per-cell incidence for the local-inertial scheme. More...

#include <InertialEdges.hpp>

Collaboration diagram for openswmm::twoD::InertialEdges:

Public Member Functions

void build (const MeshData &mesh)
 Build the structure from mesh topology. O(n_triangles).
 
bool empty () const noexcept
 

Public Attributes

int ne = 0
 number of interior (q-carrying) edges
 
std::vector< int > cL
 
std::vector< int > cR
 incident cell indices
 
std::vector< double > xi
 edge length ξ (m)
 
std::vector< double > inv_dx
 1 / centroid-to-centroid distance (1/m)
 
std::vector< double > zface
 max(tri_cz[cL], tri_cz[cR]) interface bed (m)
 
std::vector< int > slotL
 
std::vector< int > slotR
 flat mesh edge slots [tri*3+e] for writeback
 
std::vector< int > cell_ptr
 [n_triangles + 1] CSR row pointers
 
std::vector< int > cell_edge
 incident edge id
 
std::vector< double > cell_sign
 +1 (i==cL) / −1 (i==cR)
 

Detailed Description

Canonical unique interior-edge layout + per-cell incidence for the local-inertial scheme.

Member Function Documentation

◆ build()

void openswmm::twoD::InertialEdges::build ( const MeshData & mesh)

Build the structure from mesh topology. O(n_triangles).

Here is the call graph for this function:

◆ empty()

bool openswmm::twoD::InertialEdges::empty ( ) const
inlinenoexcept

Member Data Documentation

◆ cell_edge

std::vector<int> openswmm::twoD::InertialEdges::cell_edge

incident edge id

◆ cell_ptr

std::vector<int> openswmm::twoD::InertialEdges::cell_ptr

[n_triangles + 1] CSR row pointers

◆ cell_sign

std::vector<double> openswmm::twoD::InertialEdges::cell_sign

+1 (i==cL) / −1 (i==cR)

◆ cL

std::vector<int> openswmm::twoD::InertialEdges::cL

◆ cR

std::vector<int> openswmm::twoD::InertialEdges::cR

incident cell indices

◆ inv_dx

std::vector<double> openswmm::twoD::InertialEdges::inv_dx

1 / centroid-to-centroid distance (1/m)

◆ ne

int openswmm::twoD::InertialEdges::ne = 0

number of interior (q-carrying) edges

◆ slotL

std::vector<int> openswmm::twoD::InertialEdges::slotL

◆ slotR

std::vector<int> openswmm::twoD::InertialEdges::slotR

flat mesh edge slots [tri*3+e] for writeback

◆ xi

std::vector<double> openswmm::twoD::InertialEdges::xi

edge length ξ (m)

◆ zface

std::vector<double> openswmm::twoD::InertialEdges::zface

max(tri_cz[cL], tri_cz[cR]) interface bed (m)


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