Core Concepts#
Groundwater transport involves the movement of solutes and heat through porous media. This guide introduces the fundamental concepts underlying gwtransport.
The Central Concept: Pore Volume Distribution#
The central innovation of gwtransport is reducing complex 3D aquifer geometry to a pore volume distribution. This distribution captures the essential heterogeneity of an aquifer system.
Why This Matters#
Heterogeneous aquifers have multiple flow paths with different travel times
Water extracted from a well is a mixture from all these paths
The pore volume distribution describes how much of the aquifer is “fast” vs “slow”
A gamma distribution provides a flexible, physically meaningful approximation
Key insight: The pore volume distribution is constant over time, while flow rates and concentrations vary. Once calibrated, the same distribution can predict transport of any solute. However, the APVD is only well-defined and time-invariant under the steady-streamlines assumption: it is a property of the aquifer for a given streamline configuration, not an intrinsic aquifer property in general. When flow magnitude changes but streamline geometry is fixed, the APVD remains constant. When boundary conditions change in a way that redirects flow (e.g., a new pumping well activates), the streamlines rearrange and the APVD is no longer valid.
Key Parameters#
Mean pore volume: Average volume of water in flow paths (m³)
Standard deviation: Variability in pore volumes across different paths (m³)
Distribution shape: Commonly approximated using a two-parameter gamma distribution
The gamma distribution model is implemented in gwtransport.advection.gamma_infiltration_to_extraction(). For cases with known streamline geometry, pore volumes can be computed directly using gwtransport.surfacearea.compute_average_heights() and passed to gwtransport.advection.infiltration_to_extraction().
For assumptions about the gamma distribution, see 8. Gamma Distribution Adequacy.
Residence Time#
Residence time is the duration a water parcel (or solute) spends in the aquifer between infiltration and extraction points. For a given streamline with pore volume \(V\) and flow rate \(Q\):
where \(R\) is the retardation factor. Residence time depends on:
Pore volume of the flow path (m³)
Flow rate through the system (m³/day)
Retardation factor of the compound (dimensionless)
The distribution of residence times directly reflects the pore volume distribution. Use gwtransport.residence_time.residence_time() to compute residence times from flow rates and pore volumes. See the Residence Time Distribution Analysis example for practical applications.
Retardation Factor#
The retardation factor \(R\) quantifies how much slower a compound moves compared to the bulk water flow. It accounts for interactions between the transported substance and the aquifer matrix:
Conservative tracers (\(R = 1.0\)): Move at the same velocity as water (e.g., chloride, bromide, salts)
Temperature (\(R \approx 2.0\)): Retarded by heat exchange with the solid matrix; exact value depends on porosity and heat capacity ratios
Sorbing solutes (\(R > 1\)): Delayed by adsorption to aquifer materials; magnitude depends on distribution coefficient \(K_d\)
For temperature, the retardation factor can be estimated from aquifer properties (see Aquifer Characterization Using Temperature Response) or calibrated alongside pore volume parameters. For reactive solutes, \(R = 1 + \frac{\rho_b K_d}{\theta}\) where \(\rho_b\) is bulk density and \(\theta\) is porosity.
For assumptions about retardation, see 9. Linear Retardation and 10. Thermal Retardation Factor.
Temperature as a Natural Tracer#
Temperature variations in infiltrated water serve as an effective natural tracer for aquifer characterization. Unlike artificial tracers, temperature:
Requires no injection: Ambient seasonal variations provide the tracer signal
Enables continuous monitoring: High-frequency temperature sensors are cost-effective
Has predictable behavior: Retardation factor can be estimated from physical properties
Reflects transport processes: Subject to the same advection and dispersion as solutes
The key limitation is that temperature undergoes diffusive heat exchange with the aquifer matrix, requiring a retardation factor correction. Once pore volumes are calibrated using temperature data, conservative solutes can be predicted using \(R = 1.0\). See Aquifer Characterization Using Temperature Response for a complete calibration workflow.
Transport Physics#
Core Transport Equation#
The extracted concentration is a flow-weighted average over all flow paths:
Where:
\(w_i\) = weight of flow path i (from pore volume distribution)
\(\tau_i\) = residence time of flow path i
\(C_{in}\) = infiltrated concentration
This is mathematically equivalent to convolution, but implemented as discrete weighted averaging. The concentration at the extraction point is the flow-weighted average across all streamlines:
where \(C_i(t)\) is the concentration on streamline \(i\) and \(Q_i\) is the flow through that streamline. See gwtransport.advection for implementation details.
For assumptions about the transport framework, see 1. Advection-Dominated Transport, 2. Steady Streamlines, and 6. No Transverse Mixing.
Macrodispersion and Microdispersion#
A key advantage of gwtransport is how it handles dispersion by distinguishing two forms:
Macrodispersion arises naturally from the pore volume distribution (APVD):
Fast flow paths deliver early arrivals
Slow flow paths deliver late arrivals
The mixture at the well shows a “dispersed” breakthrough curve
Depends on both aquifer properties and hydrological boundary conditions — when streamlines change due to changed boundary conditions, macrodispersion changes
Microdispersion is mechanical dispersion at the pore scale (\(\alpha_L\)):
Spreading within individual streamlines due to pore-scale velocity variations
An aquifer property — determined by pore structure, independent of hydrological boundary conditions
Molecular diffusion (\(D_m\)) is a separate process (Brownian motion), distinct from both macro- and microdispersion.
Both microdispersion and molecular diffusion can be added via the gwtransport.diffusion or gwtransport.diffusion_fast modules, or represented as an equivalent increase of the gamma distribution’s std parameter (variance addition).
No numerical dispersion because:
No spatial discretization (no grid cells)
Analytical time integration
Machine-precision mass balance
This is fundamentally different from traditional numerical transport models where dispersion must be parameterized separately and grid resolution affects results.
Macrodispersion and Microdispersion as Scale-Dependent Heterogeneity#
All spreading in porous media transport arises from velocity heterogeneity at different scales:
Molecular scale: Brownian motion causes spreading even in uniform flow (\(D_m\)) — molecular diffusion
Pore scale (~mm to cm): Velocity varies within and between pores (\(\alpha_L\), longitudinal dispersivity) — microdispersion
Aquifer scale (~m to km): Different streamlines have different path lengths, reflecting conductivity contrasts from local layers to aquifer-wide heterogeneity (captured by APVD) — macrodispersion
Microdispersion (scale 2) is an aquifer property determined by pore structure, independent of hydrological boundary conditions. Macrodispersion (scale 3) depends on both aquifer properties and hydrological boundary conditions (the streamline geometry). Molecular diffusion (scale 1) is a separate process, distinct from both.
The boundaries between these scales are not sharp. This is why measured dispersivity (\(\alpha_L\)) famously increases with experiment scale—larger measurements “see” more heterogeneity.
gwtransport’s approach:
The pore volume distribution (APVD) captures macrodispersion explicitly
The diffusion module adds microdispersion (\(\alpha_L\)) and molecular diffusion (\(D_m\))
Dispersion coefficient vs. breakthrough spreading:
The longitudinal dispersion coefficient \(D_L = D_m + \alpha_L \cdot v\) increases with flow velocity. However, the actual spreading of a breakthrough curve at a fixed travel distance does not increase with flow:
Mechanical dispersion (\(\alpha_L\)): spatial spreading \(\sigma_x^2 = 2 \alpha_L L\) is independent of velocity — the plume traverses the same pore-scale heterogeneity regardless of speed
Molecular diffusion (\(D_m\)): spreading decreases with higher flow — less time for diffusion to act
In pore volume units, \(\sigma_{V,disp}\) is flow-independent, while \(\sigma_{V,diff}\) decreases with higher flow (proportional to \(1/\sqrt{Q}\)).
When calibrating APVD from measurements, the fitted \(\sigma_{apv}\) already absorbs all mixing present during calibration — macrodispersion, microdispersion, and an average molecular diffusion contribution. Adding \(\alpha_L\) would double-count. When calibrating with the diffusion module, these three components are taken into account separately. Note: if calibrating with one compound (e.g., temperature, \(D_m \approx 0.1\) m²/day) and predicting for another (e.g., a solute, \(D_m \approx 10^{-4}\) m²/day), the baked-in diffusion contribution may need correction — see Macrodispersion and Microdispersion in Solute Transport.
When computing APVD from streamline analysis, only macrodispersion (aquifer-scale path length variation) is captured. Microdispersion (\(\alpha_L\)) and molecular diffusion (\(D_m\)) can be meaningfully added:
Gamma-parameterized APVD: Combine variances by adjusting the standard deviation parameter: \(\sigma_{total} = \sqrt{\sigma_{apv}^2 + \sigma_{disp}^2 + \sigma_{diff}^2}\)
Discrete streamline volumes: Variance addition is not meaningful for an array of specific geometric measurements. Use the
gwtransport.diffusionmodule to apply microdispersion on top of the advective transport.
See Macrodispersion and Microdispersion in Solute Transport for quantitative guidance on comparing these contributions and formulas to convert microdispersion effects to equivalent APVD standard deviation.
Calibration Approaches#
Temperature Tracer Test (No Groundwater Model Needed)#
Temperature variations in surface water propagate through the aquifer to extraction wells. By fitting modeled extraction temperature to observations, the gamma distribution parameters can be estimated.
Advantages:
No artificial tracer injection required
Uses naturally occurring temperature signals
Continuous, low-cost monitoring with standard sensors
Predictable thermal behavior (retardation factor ~2.0 for heat)
Workflow:
Measure T_in, T_out, Q over time
Optimize gamma(mean, std) to match observed extraction temperatures
Calibrated model ready for predictions
See Aquifer Characterization Using Temperature Response for a complete example.
Streamline Analysis (When Flow Model Exists)#
When detailed flow field data are available (e.g., from numerical groundwater models), pore volumes can be computed directly without assuming a parametric distribution:
Compute streamlines from infiltration to extraction points using flow field data
Calculate cross-sectional areas between adjacent streamlines (
gwtransport.surfacearea.compute_average_heights())Convert 2D streamline areas to 3D pore volumes: \(V_i = A_i \times d \times \theta\), where \(d\) is aquifer depth and \(\theta\) is porosity
Pass volumes directly to
gwtransport.advection.infiltration_to_extraction()
This approach captures the actual distribution of flow paths, including multi-modal or irregular patterns that cannot be represented by a gamma distribution. The tradeoff is requiring detailed flow field information.
Model Approaches#
Gamma Distribution Model#
The gamma distribution provides a flexible two-parameter approximation for aquifer pore volume heterogeneity. The probability density function is:
where:
\(k\) is the shape parameter (dimensionless)
\(\theta\) is the scale parameter (m³)
Mean pore volume: \(\mu = k \cdot \theta\)
Standard deviation: \(\sigma = \sqrt{k} \cdot \theta\)
In practice, gwtransport parameterizes using mean and standard deviation directly (see gwtransport.gamma.bins()), which are more intuitive than shape and scale. The gamma model works well for moderately heterogeneous aquifers but may not capture multi-modal distributions or extreme heterogeneity.
For assumptions about the gamma distribution, see 8. Gamma Distribution Adequacy.
Non-Linear Sorption: Exact Solutions#
For contaminants with concentration-dependent retardation (Freundlich isotherm), gwtransport provides exact analytical solutions using front-tracking:
Wave physics:
Shocks form when faster concentrations overtake slower ones
Rarefaction waves form when concentrations spread apart
For n > 1 (favorable sorption): Sharp rise, gradual decline
For n < 1 (unfavorable sorption): Gradual rise, sharp decline
The solver tracks these waves analytically, eliminating numerical artifacts. Use gwtransport.advection.infiltration_to_extraction_front_tracking() for non-linear sorption.
See Advection with Non-Linear Sorption for a complete example.
Comparison to Complex Transport Models#
Aspect |
gwtransport |
Full 3D Model |
|---|---|---|
Parameters |
2 (mean, std of PV) |
Many (K, porosity, dispersivity, boundary conditions…) |
Calibration data needed |
Temperature/concentration time series |
Extensive spatial data |
Numerical dispersion |
None |
Grid-dependent |
Computation time |
Seconds |
Hours to days |
Uncertainty |
Transparent (2 parameters) |
Complex (parameter correlation) |
When to use |
Initial assessment, design screening |
Detailed site characterization |
Key insight: More complex models require more data to constrain additional parameters. If you don’t have that data, added complexity doesn’t improve predictions.
What gwtransport Does NOT Do#
Does not solve flow equations - Requires flow rates as input
Does not model 3D geometry explicitly - Reduces to pore volume distribution
Does not handle reactions - Only retardation/sorption (see 5. No Reactions or Decay)
Does not model multi-species interactions - Single compound at a time
Does not include density-dependent flow - Assumes fixed streamlines (see 2. Steady Streamlines)
These simplifications are intentional: they make the model tractable while capturing the essential physics for many practical problems.
For a complete discussion of all assumptions and when they apply, see Assumptions.
Applications#
Bank Filtration and Managed Aquifer Recharge#
Predict pathogen removal efficiency in bank filtration systems by coupling residence time distributions with pathogen attenuation rates. See Pathogen Removal in Bank Filtration Systems and Deposition Analysis in Bank Filtration Systems. Use gwtransport.logremoval.residence_time_to_log_removal() to convert residence times to log removal values.
Contaminant Transport Forecasting#
Forecast contaminant arrival times and breakthrough curves at extraction wells. Once pore volume parameters are calibrated, predict transport of conservative solutes under varying flow conditions. Useful for risk assessment and treatment design.
Aquifer Characterization#
Estimate effective pore volume distributions from temperature tracer tests (Aquifer Characterization Using Temperature Response). Infer aquifer heterogeneity without costly artificial tracer tests. Validate numerical groundwater models against observed transport behavior.
Digital Twin Systems#
Implement real-time water quality monitoring by continuously updating model predictions with incoming sensor data. Enable early warning for contamination events. Support operational decisions for drinking water utilities by forecasting impacts of changing infiltration conditions.