![]() |
OpenSWMM Engine
6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
|
Classes | |
| struct | ColumnStep |
| What one column sweep needs and what it reports back. More... | |
Functions | |
| double | columnStorage (const double *theta, int m, int stride, double L) noexcept |
Total water in the column (m of water) — Σ θ_j·L·Δσ. | |
| void | seedHydrostatic (const soil::Params &p, double *theta, int m, int stride, double L) noexcept |
Seed a column to hydrostatic equilibrium above a table at depth L. | |
| double | columnDtLimit (const soil::Params &p, const double *theta, int m, int stride, double L, double Ldot, double c_col, bool capillary) noexcept |
| void | advanceColumn (const soil::Params &p, double *theta, int m, int stride, ColumnStep &st) noexcept |
Advance one σ column by st.dt. | |
|
noexcept |
Advance one σ column by st.dt.
| p | the cell's soil law and parameters |
| theta | m layer water contents, layer 0 at the surface. Read and written in place; stride is the caller's (the SoA is layer-major, so the caller passes a gathered/scattered buffer or a strided view — see stride). |
| m | layer count |
| stride | distance between consecutive layers in theta (1 for a packed buffer, n_cells for the layer-major SoA) |
| st | step inputs and outputs |
Positivity is enforced per face by an availability share, the same idiom as the surface solver's volume share: a face may not take more water than its donor layer holds above θ_r, and the shares are scaled together when a layer's outgoing faces over-subscribe it. First-order upwind in v1 (D-N4); MUSCL is a recorded follow-up.
|
noexcept |
The explicit stability bound of a column, without advancing it (§2.3): Δt_u ≤ C_col·min_j[ L·Δσ / ( c(θ_j) + |σ_j·L̇| + 2·D̄_j/(L·Δσ) ) ] with celerity c(θ) = dK/dθ.
|
noexcept |
Total water in the column (m of water) — Σ θ_j·L·Δσ.
|
noexcept |
Seed a column to hydrostatic equilibrium above a table at depth L.