OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
openswmm::twoD::sigma Namespace Reference

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.
 

Function Documentation

◆ advanceColumn()

void openswmm::twoD::sigma::advanceColumn ( const soil::Params & p,
double * theta,
int m,
int stride,
ColumnStep & st )
noexcept

Advance one σ column by st.dt.

Parameters
pthe cell's soil law and parameters
thetam 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).
mlayer count
stridedistance between consecutive layers in theta (1 for a packed buffer, n_cells for the layer-major SoA)
ststep 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.

Here is the call graph for this function:

◆ columnDtLimit()

double openswmm::twoD::sigma::columnDtLimit ( const soil::Params & p,
const double * theta,
int m,
int stride,
double L,
double Ldot,
double c_col,
bool capillary )
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θ.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ columnStorage()

double openswmm::twoD::sigma::columnStorage ( const double * theta,
int m,
int stride,
double L )
noexcept

Total water in the column (m of water) — Σ θ_j·L·Δσ.

Here is the caller graph for this function:

◆ seedHydrostatic()

void openswmm::twoD::sigma::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.

Here is the call graph for this function:
Here is the caller graph for this function: