26#ifndef OPENSWMM_GROUNDWATER_HPP
27#define OPENSWMM_GROUNDWATER_HPP
29#ifndef OPENSWMM_RESTRICT
31# define OPENSWMM_RESTRICT __restrict
33# define OPENSWMM_RESTRICT __restrict__
41struct SimulationContext;
43namespace groundwater {
65 std::vector<double>
a1,
b1;
66 std::vector<double>
a2,
b2;
67 std::vector<double>
a3;
89 void init(
int n_subcatch);
108 const double* infil_rate,
const double* sw_head);
116 static void batchUpperPerc(
126 static void batchGWFlow(
#define OPENSWMM_RESTRICT
Definition XSectBatch.hpp:41
Definition Groundwater.hpp:87
GWSoA & state()
Definition Groundwater.hpp:110
void init(int n_subcatch)
Definition Groundwater.cpp:48
void execute(SimulationContext &ctx, double dt, double max_evap, const double *infil_rate, const double *sw_head)
Compute groundwater for all subcatchments (batch).
Definition Groundwater.cpp:126
Definition Controls.cpp:24
Central, reentrant simulation context.
Definition SimulationContext.hpp:141
Definition Groundwater.hpp:49
void resize(int n)
Definition Groundwater.cpp:19
std::vector< double > total_depth
Aquifer thickness (ft)
Definition Groundwater.hpp:62
std::vector< double > gw_flow
Lateral GW flow to node (cfs)
Definition Groundwater.hpp:75
std::vector< double > upper_evap
Upper zone evap (ft3/sec)
Definition Groundwater.hpp:76
std::vector< double > lower_loss_coeff
Deep percolation coeff.
Definition Groundwater.hpp:61
std::vector< double > b2
Surface water interaction.
Definition Groundwater.hpp:66
std::vector< double > theta
Upper zone moisture content (0-φ)
Definition Groundwater.hpp:71
std::vector< double > tension_slope
Definition Groundwater.hpp:58
std::vector< double > porosity
Definition Groundwater.hpp:53
std::vector< double > field_cap
Definition Groundwater.hpp:54
std::vector< double > lower_evap_depth
Definition Groundwater.hpp:60
std::vector< double > k_slope
Exponential decay slope.
Definition Groundwater.hpp:57
int n_subcatch
Definition Groundwater.hpp:50
std::vector< double > deep_loss
Deep percolation (ft3/sec)
Definition Groundwater.hpp:78
std::vector< double > b1
GW outflow.
Definition Groundwater.hpp:65
std::vector< double > wilt_point
Definition Groundwater.hpp:55
std::vector< double > a3
Cross-interaction.
Definition Groundwater.hpp:67
std::vector< double > upper_evap_frac
Definition Groundwater.hpp:59
std::vector< double > lower_depth
Lower zone depth (ft)
Definition Groundwater.hpp:72
std::vector< double > k_sat
Saturated conductivity (ft/sec)
Definition Groundwater.hpp:56
std::vector< double > a1
Definition Groundwater.hpp:65
std::vector< double > h_star
Threshold water table height (ft)
Definition Groundwater.hpp:68
std::vector< double > a2
Definition Groundwater.hpp:66
std::vector< double > lower_evap
Lower zone evap (ft3/sec)
Definition Groundwater.hpp:77