|
| OPENSWMM_EXCHANGE_HD double | phi (double x, double eps) |
| | C¹-regularised √x: √x for x ≥ ε, (3/(2√ε))x − x²/(2ε^{3/2}) below.
|
| |
| OPENSWMM_EXCHANGE_HD double | dphi (double x, double eps) |
| | dφ/dx (finite at 0).
|
| |
| OPENSWMM_EXCHANGE_HD double | smoothstep (double t) |
| | Hermite smoothstep of t clamped to [0, 1].
|
| |
| OPENSWMM_EXCHANGE_HD double | softmin (double a, double b, double &wa, double &wb) |
| | p-norm minimum, p = 16: (a^−16 + b^−16)^(−1/16) for a, b > 0, else 0. Evaluated as min / (1 + r^16)^(1/16), r = min/max ∈ (0, 1], with four square roots — no overflow, no pow. Weights ∂Q/∂a, ∂Q/∂b go to wa, wb.
|
| |
| OPENSWMM_EXCHANGE_HD Result | exchange (const Geometry &geo, const Coefficients &c, double h2, double h1) |
| | Evaluate the bidirectional regularized weir/orifice exchange and damping.
|
| |
| OPENSWMM_EXCHANGE_HD double openswmm::twoD::exchange::softmin |
( |
double | a, |
|
|
double | b, |
|
|
double & | wa, |
|
|
double & | wb ) |
p-norm minimum, p = 16: (a^−16 + b^−16)^(−1/16) for a, b > 0, else 0. Evaluated as min / (1 + r^16)^(1/16), r = min/max ∈ (0, 1], with four square roots — no overflow, no pow. Weights ∂Q/∂a, ∂Q/∂b go to wa, wb.
- Parameters
-
| [in] | a | Finite nonnegative first candidate flow, m3/s. |
| [in] | b | Finite nonnegative second candidate flow, m3/s. |
| [out] | wa | Dimensionless sensitivity to a; set to zero if either candidate is nonpositive. |
| [out] | wb | Dimensionless sensitivity to b; set to zero if either candidate is nonpositive. |
- Returns
- Smoothed limiting discharge in m3/s, no greater than min(a,b); zero if either candidate is nonpositive.
- Precondition
- wa and wb refer to separate output scalars. No pointer/state ownership or allocation.