OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
Loading...
Searching...
No Matches
openswmm::groundwater::GWSolver Class Reference

#include <Groundwater.hpp>

Collaboration diagram for openswmm::groundwater::GWSolver:

Public Member Functions

void init (int n_subcatch)
 
void execute (SimulationContext &ctx, double dt, double max_evap, const double *infil_rate, const double *sw_head)
 Compute groundwater for all subcatchments (batch).
 
GWSoAstate ()
 

Member Function Documentation

◆ execute()

void openswmm::groundwater::GWSolver::execute ( SimulationContext ctx,
double  dt,
double  max_evap,
const double *  infil_rate,
const double *  sw_head 
)

Compute groundwater for all subcatchments (batch).

Steps (per subcatchment, all independent → vectorisable):

  1. Compute upper zone percolation — batch exp() + multiply
  2. Compute lateral GW flow — batch pow() + arithmetic
  3. Compute deep percolation — batch multiply
  4. Compute ET from upper/lower zones — batch clamp
  5. Euler step: θ += dθ/dt * dt, H += dH/dt * dt — batch add
Parameters
ctxSimulation context.
dtTimestep (seconds).
max_evapMaximum evaporation rate (ft/sec, scalar broadcast).
infil_ratePer-subcatchment infiltration rate (ft/sec).
sw_headPer-subcatchment surface water head (ft).

◆ init()

void openswmm::groundwater::GWSolver::init ( int  n_subcatch)
Here is the call graph for this function:

◆ state()

GWSoA & openswmm::groundwater::GWSolver::state ( )
inline

The documentation for this class was generated from the following files: