46#ifndef OPENSWMM_ENGINE_2D_INERTIAL_EDGES_HPP
47#define OPENSWMM_ENGINE_2D_INERTIAL_EDGES_HPP
65 std::vector<double>
xi;
79 std::vector<double>
nx,
ny;
80 std::vector<double>
mx,
my;
141 bool empty() const noexcept {
return ne == 0; }
Definition ExchangeLaw.hpp:60
Canonical unique interior-edge layout + per-cell incidence for the local-inertial scheme.
Definition InertialEdges.hpp:60
bool empty() const noexcept
Test whether the built layout has any interior discharge edges.
Definition InertialEdges.hpp:141
std::vector< double > n2_face
(½(n_L+n_R))² Manning coefficient
Definition InertialEdges.hpp:86
std::vector< double > cell_lpos
Definition InertialEdges.hpp:97
std::vector< double > n_face
Definition InertialEdges.hpp:87
std::vector< double > conveyance
face transmissivity ψ in [0, 1], separate from CFL geometry
Definition InertialEdges.hpp:66
std::vector< double > xi
geometric edge length ξ (m), unchanged by conveyance
Definition InertialEdges.hpp:65
std::vector< double > inv_dx
1 / centroid-to-centroid distance (1/m)
Definition InertialEdges.hpp:67
std::vector< double > mx
Definition InertialEdges.hpp:80
std::vector< double > cell_arm_y
Definition InertialEdges.hpp:113
std::vector< double > cell_lchar
Definition InertialEdges.hpp:92
bool refreshConveyance(const MeshData &mesh)
Definition InertialEdges.cpp:199
std::vector< double > ze_hi
Definition InertialEdges.hpp:74
std::vector< double > cell_arm_x
Definition InertialEdges.hpp:113
void build(const MeshData &mesh)
Build the structure from mesh topology. O(n_triangles).
Definition InertialEdges.cpp:22
std::vector< double > nx
Definition InertialEdges.hpp:79
std::vector< double > zface
Definition InertialEdges.hpp:68
std::vector< int > cL
Definition InertialEdges.hpp:64
std::vector< double > ze_lo
Definition InertialEdges.hpp:74
std::vector< int > slotR
flat mesh edge slots [cell*kMaxCellVerts+e] for writeback
Definition InertialEdges.hpp:75
std::vector< int > slotL
Definition InertialEdges.hpp:75
int ne
number of interior (q-carrying) edges
Definition InertialEdges.hpp:61
std::vector< double > ny
unit normal, oriented cL→cR
Definition InertialEdges.hpp:79
std::vector< int > cell_ptr
[n_triangles + 1] CSR row pointers
Definition InertialEdges.hpp:103
std::vector< int8_t > cell_sign
Definition InertialEdges.hpp:108
std::vector< int > cell_edge
Definition InertialEdges.hpp:104
std::vector< int > cR
incident cell indices
Definition InertialEdges.hpp:64
std::vector< double > my
Definition InertialEdges.hpp:80
std::vector< double > inv_dx_normal
Definition InertialEdges.hpp:85
SoA storage for 2D mixed triangle/quad mesh geometry and topology.
Definition MeshData.hpp:65