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

Cross-section closure for one conduit's cell chain. More...

#include <NetworkMeshData.hpp>

Collaboration diagram for openswmm::fv::FvGeometry:

Public Attributes

XSectParams xs {}
 copied scalars; transect/profile table pointers remain borrowed
 
double y_full = 0.0
 full depth (ft)
 
double a_full = 0.0
 area when full (ft²)
 
double w_max = 0.0
 width at widest point (ft)
 
double r_full = 0.0
 hydraulic radius when full (ft)
 
double barrel_scale = 1.0
 
double y_crown = 0.0
 
double t_slot = 0.0
 
double a_crown = 0.0
 
double i1_crown = 0.0
 I₁(y_full) — the table's last entry, cached for the same reason.
 
uint8_t is_open = 0
 open section: no crown, no slot taper
 
int barrels = 1
 parallel identical barrels
 
FvClosure closure_tbl {}
 

Detailed Description

Cross-section closure for one conduit's cell chain.

One continuous geometry valid from dry bed to full pressurization: the Preissmann slot is folded into A(h)/T(h)/R(h) so every cell evaluates the same flux function and "transition" is just a depth crossing the crown (plan §3.3). t_slot is derived from FV_SLOT_CELERITY, and the slot mouth is tapered over [y_crown, y_full] so dA/dh stays Lipschitz through the crown — a discontinuous dA/dh would produce spurious reflections and corrupt the Riemann solver's wave-speed estimates.

Member Data Documentation

◆ a_crown

double openswmm::fv::FvGeometry::a_crown = 0.0

A(y_full) INCLUDING the slot area accumulated over the tapered mouth. Cached because every above-crown evaluation and the analytic I₁ extension start from it.

◆ a_full

double openswmm::fv::FvGeometry::a_full = 0.0

area when full (ft²)

◆ barrel_scale

double openswmm::fv::FvGeometry::barrel_scale = 1.0

barrels as a factor on AREA and TOP WIDTH (see barrels below). Kept beside the fields every area evaluation already loads.

◆ barrels

int openswmm::fv::FvGeometry::barrels = 1

parallel identical barrels

◆ closure_tbl

FvClosure openswmm::fv::FvGeometry::closure_tbl {}

The closure every FvKernels section function evaluates: the exact section (SectionGeometry.hpp) sampled at build time into a monotone cubic table with the slot folded in, or the polynomial class for open sections (FvClosureKernels.hpp). A fixed-size, pointer-free POD block, so the whole geometry can be captured by a device backend as plain bytes; xs above still carries host table pointers for the table- defined shapes and is read only at build time.

◆ i1_crown

double openswmm::fv::FvGeometry::i1_crown = 0.0

I₁(y_full) — the table's last entry, cached for the same reason.

◆ is_open

uint8_t openswmm::fv::FvGeometry::is_open = 0

open section: no crown, no slot taper

◆ r_full

double openswmm::fv::FvGeometry::r_full = 0.0

hydraulic radius when full (ft)

◆ t_slot

double openswmm::fv::FvGeometry::t_slot = 0.0

Top width of the slot above the crown, g·A_full/c_slot². Open shapes carry w_max here so the vertical-wall extension is one code path.

◆ w_max

double openswmm::fv::FvGeometry::w_max = 0.0

width at widest point (ft)

◆ xs

XSectParams openswmm::fv::FvGeometry::xs {}

copied scalars; transect/profile table pointers remain borrowed

◆ y_crown

double openswmm::fv::FvGeometry::y_crown = 0.0

Depth at which the slot begins to open. Closed shapes: SLOT_CROWN_CUTOFF · y_full (Sjöberg-style, engages just below the crown). Open shapes: y_full, with no taper — the section simply continues with vertical walls.

◆ y_full

double openswmm::fv::FvGeometry::y_full = 0.0

full depth (ft)


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