30#ifndef OPENSWMM_ENGINE_2D_INERTIAL_EDGES_HPP
31#define OPENSWMM_ENGINE_2D_INERTIAL_EDGES_HPP
48 std::vector<double>
xi;
64 bool empty() const noexcept {
return ne == 0; }
Definition NodeCoupling.cpp:15
Canonical unique interior-edge layout + per-cell incidence for the local-inertial scheme.
Definition InertialEdges.hpp:43
bool empty() const noexcept
Definition InertialEdges.hpp:64
std::vector< double > cell_sign
+1 (i==cL) / −1 (i==cR)
Definition InertialEdges.hpp:59
std::vector< double > xi
edge length ξ (m)
Definition InertialEdges.hpp:48
std::vector< double > inv_dx
1 / centroid-to-centroid distance (1/m)
Definition InertialEdges.hpp:49
void build(const MeshData &mesh)
Build the structure from mesh topology. O(n_triangles).
Definition InertialEdges.cpp:24
std::vector< double > zface
max(tri_cz[cL], tri_cz[cR]) interface bed (m)
Definition InertialEdges.hpp:50
std::vector< int > cL
Definition InertialEdges.hpp:47
std::vector< int > slotR
flat mesh edge slots [tri*3+e] for writeback
Definition InertialEdges.hpp:51
std::vector< int > slotL
Definition InertialEdges.hpp:51
int ne
number of interior (q-carrying) edges
Definition InertialEdges.hpp:44
std::vector< int > cell_ptr
[n_triangles + 1] CSR row pointers
Definition InertialEdges.hpp:57
std::vector< int > cell_edge
incident edge id
Definition InertialEdges.hpp:58
std::vector< int > cR
incident cell indices
Definition InertialEdges.hpp:47
SoA storage for 2D triangular mesh geometry and topology.
Definition MeshData.hpp:34