#include <Groundwater.hpp>
|
| void | init (int n_subcatch) |
| |
| void | execute (SimulationContext &ctx, double dt, double max_evap, const double *infil_rate, const double *sw_head, const double *frac_perv, const double *perv_evap_rate) |
| | Compute groundwater for all subcatchments (batch).
|
| |
| GWSoA & | state () |
| |
| const GWSoA & | state () const |
| |
◆ execute()
| void openswmm::groundwater::GWSolver::execute |
( |
SimulationContext & |
ctx, |
|
|
double |
dt, |
|
|
double |
max_evap, |
|
|
const double * |
infil_rate, |
|
|
const double * |
sw_head, |
|
|
const double * |
frac_perv, |
|
|
const double * |
perv_evap_rate |
|
) |
| |
Compute groundwater for all subcatchments (batch).
Steps (per subcatchment, all independent → vectorisable):
- Compute upper zone percolation — batch exp() + multiply
- Compute lateral GW flow — batch pow() + arithmetic
- Compute deep percolation — batch multiply
- Compute ET from upper/lower zones — batch clamp
- Euler step: θ += dθ/dt * dt, H += dH/dt * dt — batch add
- Parameters
-
| ctx | Simulation context. |
| dt | Timestep (seconds). |
| max_evap | Maximum evaporation rate (ft/sec, scalar broadcast). |
| infil_rate | Per-subcatchment infiltration rate (ft/sec over full area). |
| sw_head | Per-subcatchment surface water head (ft). |
| frac_perv | Per-subcatchment pervious fraction (0-1). |
| perv_evap_rate | Per-subcatchment pervious evap rate already exerted (ft/sec over full area). |
◆ init()
| void openswmm::groundwater::GWSolver::init |
( |
int |
n_subcatch | ) |
|
◆ state() [1/2]
| GWSoA & openswmm::groundwater::GWSolver::state |
( |
| ) |
|
|
inline |
◆ state() [2/2]
| const GWSoA & openswmm::groundwater::GWSolver::state |
( |
| ) |
const |
|
inline |
The documentation for this class was generated from the following files:
- /home/runner/work/openswmm.engine/openswmm.engine/src/engine/hydrology/Groundwater.hpp
- /home/runner/work/openswmm.engine/openswmm.engine/src/engine/hydrology/Groundwater.cpp