OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
SoilCharacteristic.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2//
3// Copyright 2026 Caleb Buahin
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing, software
12// distributed under the License is distributed on an "AS IS" BASIS,
13// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14// See the License for the specific language governing permissions and
15// limitations under the License.
16
81
82#ifndef OPENSWMM_ENGINE_2D_SOIL_CHARACTERISTIC_HPP
83#define OPENSWMM_ENGINE_2D_SOIL_CHARACTERISTIC_HPP
84
85#include "SubsurfaceData.hpp"
86
87namespace openswmm::twoD::soil {
88
91struct Params {
93 double Ks = 1.0e-5;
94 double theta_s = 0.45;
95 double theta_r = 0.10;
96 double alpha = 2.0;
97 double psi_b = 0.20;
98 double lambda = 0.40;
99 double vg_n = 1.6;
100 double vg_L = 0.5;
101};
102
115double effectiveSaturation(const Params& p, double psi) noexcept;
116
128double waterContent(const Params& p, double psi) noexcept;
129
141double relativeConductivity(const Params& p, double psi) noexcept;
142
154double conductivity(const Params& p, double psi) noexcept;
155
168double suctionAtSaturation(const Params& p, double Se) noexcept;
169
184double diffusivity(const Params& p, double psi) noexcept;
185
200double equilibriumStorage(const Params& p, double L) noexcept;
201
216double rechargeQ0(const Params& p, double L, double hu) noexcept;
217
230double enslavedStorage(const Params& p, double L) noexcept;
231
245double alphaL(const Params& p, double L) noexcept;
246
257double feddesStress(double psi, double psi_w) noexcept;
258
259} // namespace openswmm::twoD::soil
260
261#endif // OPENSWMM_ENGINE_2D_SOIL_CHARACTERISTIC_HPP
G-step 1 — state, parameters and options for the two-zone groundwater kernel (TWO_ZONE_GROUNDWATER_EX...
Definition SoilCharacteristic.cpp:32
double effectiveSaturation(const Params &p, double psi) noexcept
Effective saturation at suction head psi (m, ≥ 0). Se ∈ (0, 1].
Definition SoilCharacteristic.cpp:69
double waterContent(const Params &p, double psi) noexcept
Water content θ(ψ) = θ_r + Se·(θ_s − θ_r).
Definition SoilCharacteristic.cpp:107
double diffusivity(const Params &p, double psi) noexcept
Soil-moisture diffusivity D(θ) = K(ψ)/|dθ/dψ| (m²/s) at suction psi. Evaluated from a centered finite...
Definition SoilCharacteristic.cpp:187
double rechargeQ0(const Params &p, double L, double hu) noexcept
Closure-A quasi-steady recharge (m/s). + down, − capillary rise.
Definition SoilCharacteristic.cpp:265
double conductivity(const Params &p, double psi) noexcept
Unsaturated conductivity K(ψ) = Ks·Kr(ψ) (m/s).
Definition SoilCharacteristic.cpp:143
double suctionAtSaturation(const Params &p, double Se) noexcept
Suction head at a given effective saturation — the retention inverse, needed to give the σ column a ψ...
Definition SoilCharacteristic.cpp:147
double equilibriumStorage(const Params &p, double L) noexcept
Hydrostatic-equilibrium storage of a column of thickness L (m of water): ∫₀ᴸ θ(ψ) dψ....
Definition SoilCharacteristic.cpp:244
double relativeConductivity(const Params &p, double psi) noexcept
Relative conductivity Kr(ψ) ∈ [0, 1].
Definition SoilCharacteristic.cpp:111
double feddesStress(double psi, double psi_w) noexcept
Feddes-style smooth stress multiplier on potential ET, from the column's mean suction....
Definition SoilCharacteristic.cpp:315
double alphaL(const Params &p, double L) noexcept
αL, the dimensionless group the AUTO closure selection reads. For Brooks–Corey and van Genuchten the ...
Definition SoilCharacteristic.cpp:302
double enslavedStorage(const Params &p, double L) noexcept
The ENSLAVED reduction: hᵤ algebraic in h_g — the storage at which rechargeQ0 vanishes....
Definition SoilCharacteristic.cpp:261
SoilChar
Definition SubsurfaceData.hpp:62
@ RUSSO
default; Mualem-consistent, same α slot as Gardner
Definition SubsurfaceData.hpp:63
Definition SoilCharacteristic.hpp:91
SoilChar law
Definition SoilCharacteristic.hpp:92
double alpha
Definition SoilCharacteristic.hpp:96
double Ks
Definition SoilCharacteristic.hpp:93
double vg_n
Definition SoilCharacteristic.hpp:99
double theta_r
Definition SoilCharacteristic.hpp:95
double psi_b
Definition SoilCharacteristic.hpp:97
double theta_s
Definition SoilCharacteristic.hpp:94
double vg_L
Definition SoilCharacteristic.hpp:100
double lambda
Definition SoilCharacteristic.hpp:98