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

Classes

struct  Params
 

Functions

double effectiveSaturation (const Params &p, double psi) noexcept
 Effective saturation at suction head psi (m, ≥ 0). Se ∈ (0, 1].
 
double waterContent (const Params &p, double psi) noexcept
 Water content θ(ψ) = θ_r + Se·(θ_s − θ_r).
 
double relativeConductivity (const Params &p, double psi) noexcept
 Relative conductivity Kr(ψ) ∈ (0, 1].
 
double conductivity (const Params &p, double psi) noexcept
 Unsaturated conductivity K(ψ) = Ks·Kr(ψ) (m/s).
 
double suctionAtSaturation (const Params &p, double Se) noexcept
 
double diffusivity (const Params &p, double psi) noexcept
 
double equilibriumStorage (const Params &p, double L) noexcept
 
double enslavedStorage (const Params &p, double L) noexcept
 
double rechargeQ0 (const Params &p, double L, double hu) noexcept
 
double alphaL (const Params &p, double L) noexcept
 
double feddesStress (double psi, double psi_w) noexcept
 

Function Documentation

◆ alphaL()

double openswmm::twoD::soil::alphaL ( const Params & p,
double L )
noexcept

αL, the dimensionless group the AUTO closure selection reads. For Brooks–Corey and van Genuchten the law's own inverse length replaces α (1/ψ_b, and the van Genuchten α), so the thresholds mean the same thing across laws.

◆ conductivity()

double openswmm::twoD::soil::conductivity ( const Params & p,
double psi )
noexcept

Unsaturated conductivity K(ψ) = Ks·Kr(ψ) (m/s).

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

◆ diffusivity()

double openswmm::twoD::soil::diffusivity ( const Params & p,
double psi )
noexcept

Soil-moisture diffusivity D(θ) = K(ψ)·dψ/dθ (m²/s) at suction psi. Zero when the capillary term is off; evaluated by the analytic dSe/dψ of each law.

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

◆ effectiveSaturation()

double openswmm::twoD::soil::effectiveSaturation ( const Params & p,
double psi )
noexcept

Effective saturation at suction head psi (m, ≥ 0). Se ∈ (0, 1].

Here is the caller graph for this function:

◆ enslavedStorage()

double openswmm::twoD::soil::enslavedStorage ( const Params & p,
double L )
noexcept

The ENSLAVED reduction: hᵤ algebraic in h_g — the storage at which rechargeQ0 vanishes. For Gardner this is eq. 39.

Here is the call graph for this function:

◆ equilibriumStorage()

double openswmm::twoD::soil::equilibriumStorage ( const Params & p,
double L )
noexcept

Hydrostatic-equilibrium storage of a column of thickness L (m of water): ∫₀ᴸ θ(ψ) dψ. Gardner and Brooks–Corey are closed form; Russo and van Genuchten use fixed-order Gauss–Legendre.

Here is the caller graph for this function:

◆ feddesStress()

double openswmm::twoD::soil::feddesStress ( double psi,
double psi_w )
noexcept

Feddes-style smooth stress multiplier on potential ET, from the column's mean suction. 1 in the readily-available range, falling smoothly to 0 at the wilting point — no if (infil <= 0) gate, which is the behaviour §7 retires. psi_w wilting suction (m).

Here is the caller graph for this function:

◆ rechargeQ0()

double openswmm::twoD::soil::rechargeQ0 ( const Params & p,
double L,
double hu )
noexcept

Closure-A quasi-steady recharge (m/s). + down, capillary rise.

Parameters
Lunsaturated column thickness z_s − h_g (m)
hubulk unsaturated storage as an equivalent water depth (m) For Gardner this IS eq. 22; see the file header for the other three.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ relativeConductivity()

double openswmm::twoD::soil::relativeConductivity ( const Params & p,
double psi )
noexcept

Relative conductivity Kr(ψ) ∈ (0, 1].

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

◆ suctionAtSaturation()

double openswmm::twoD::soil::suctionAtSaturation ( const Params & p,
double Se )
noexcept

Suction head at a given effective saturation — the retention inverse, needed to give the σ column a ψ from its θ. Returns 0 at Se ≥ 1.

Here is the caller graph for this function:

◆ waterContent()

double openswmm::twoD::soil::waterContent ( const Params & p,
double psi )
noexcept

Water content θ(ψ) = θ_r + Se·(θ_s − θ_r).

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