Skip to main content

Water Quality Model

1. Overview

HydroPol2D simulates pollutant transport using a build-up and wash-off formulation coupled to the hydrodynamic model.

The model tracks:

  • pollutant mass stored on the surface,
  • pollutant removal due to flow (wash-off),
  • redistribution between neighboring cells,
  • export through outlet boundaries.

The governing variable is:

BtB_t

where:

  • BtB_t = pollutant mass per cell [M][\mathrm{M}]

The model is fully mass conservative and dynamically coupled to flow routing.


2. Pollutant storage

Each cell stores a pollutant mass:

Bt[kg]B_t \quad [\mathrm{kg}]

The corresponding areal concentration is:

b=BtAcell[ML2]b = \frac{B_t}{A_{\mathrm{cell}}} \quad [\mathrm{M}\,\mathrm{L}^{-2}]

where:

  • AcellA_{\mathrm{cell}} = cell area [L2][\mathrm{L}^2]

Minimum and maximum thresholds are defined:

  • BminB_{\min} → minimum active pollutant mass
  • BmaxB_{\max} → saturation limit

Below a threshold:

b<bminno wash-offb < b_{\min} \Rightarrow \text{no wash-off}

3. Hydrodynamic coupling

The water quality model uses hydrodynamic outflows:

qout={qleft,qright,qup,qdown,qoutlet}q_{\mathrm{out}} = \{ q_{\mathrm{left}}, q_{\mathrm{right}}, q_{\mathrm{up}}, q_{\mathrm{down}}, q_{\mathrm{outlet}} \}

with units:

[LT1](mm/h)[\mathrm{L}\,\mathrm{T}^{-1}] \quad (\mathrm{mm/h})

These are converted internally to volumetric flow:

Q=qout10003600Acell[L3T1]Q = \frac{q_{\mathrm{out}}}{1000 \cdot 3600} \cdot A_{\mathrm{cell}} \quad [\mathrm{L}^3\,\mathrm{T}^{-1}]

4. Wash-off formulation

Two wash-off formulations are implemented.


4.1 Rating-curve wash-off model

When flag_wq_model = 1, the wash-off is:

Wout=C3QC4f(Bt)W_{\mathrm{out}} = C_3 \, Q^{C_4} \, f(B_t)

where:

  • WoutW_{\mathrm{out}} = pollutant mass flux [MT1][\mathrm{M}\,\mathrm{T}^{-1}]
  • C3,C4C_3, C_4 = empirical coefficients
  • QQ = flow rate [L3T1][\mathrm{L}^3\,\mathrm{T}^{-1}]

The storage correction factor is:

f(Bt)=1+max(BtBr,0)f(B_t) = 1 + \max(B_t - B_r, 0)

where:

  • BrB_r = residual pollutant mass threshold [M][\mathrm{M}]

This formulation ensures that:

  • wash-off increases with flow,
  • wash-off increases with available pollutant mass.

4.2 Mass-based wash-off model

When flag_wq_model = 0, the formulation becomes:

Wout=C3QC4BtW_{\mathrm{out}} = C_3 \, Q^{C_4} \, B_t

This formulation assumes:

  • wash-off is proportional to available pollutant mass,
  • transport increases with flow magnitude.

5. Directional pollutant fluxes

Pollutant fluxes are computed for each direction:

  • left
  • right
  • up
  • down
  • outlet

The total pollutant outflow from a cell is:

Wout,tot=kWout,kW_{\mathrm{out,tot}} = \sum_k W_{\mathrm{out},k}

Incoming pollutant fluxes are computed from neighboring cells:

Win=kWin,kW_{\mathrm{in}} = \sum_k W_{\mathrm{in},k}

6. Net pollutant balance

The net pollutant rate is:

dW=Wout,totWin[MT1]dW = W_{\mathrm{out,tot}} - W_{\mathrm{in}} \quad [\mathrm{M}\,\mathrm{T}^{-1}]

The mass balance equation is:

Btt+Δt=BttdWΔtB_t^{t+\Delta t} = B_t^t - dW \cdot \Delta t

This formulation accounts for:

  • pollutant removal due to wash-off,
  • pollutant redistribution across the grid.

7. Adaptive time stepping (critical feature)

To ensure stability and avoid negative mass, HydroPol2D computes a minimum admissible time step:

Δtmin=min(BtdW)\Delta t_{\min} = \min \left( \frac{B_t}{|dW|} \right)

where:

  • only cells losing mass are considered,
  • very small values are excluded.

If:

Δtmin<Δt\Delta t_{\min} < \Delta t

the model splits the time step into sub-steps:

Δt=Δti\Delta t = \sum \Delta t_i

and updates pollutant mass iteratively:

Bti+1=BtidWΔtiB_t^{i+1} = B_t^i - dW \cdot \Delta t_i

This ensures:

  • no negative pollutant mass,
  • numerical stability,
  • accurate mass conservation.

8. Mass conservation and corrections

After updating:

  • negative values are removed:
Bt=max(Bt,0)B_t = \max(B_t, 0)
  • rounding is applied to avoid numerical noise.

Mass lost due to numerical corrections is tracked:

masslost\mathrm{mass}_{\mathrm{lost}}

9. Pollutant concentration

Pollutant concentration is computed as:

C=Wout,totQtotAcell106[mg/L]C = \frac{W_{\mathrm{out,tot}}}{Q_{\mathrm{tot}} \cdot A_{\mathrm{cell}}} \cdot 10^6 \quad [\mathrm{mg/L}]

where:

  • QtotQ_{\mathrm{tot}} = total water outflow [LT1][\mathrm{L}\,\mathrm{T}^{-1}]

10. Outlet concentration

The outlet concentration is computed as:

Cout=Wout,outletQoutletAcell1000[mg/L]C_{\mathrm{out}} = \frac{ \sum W_{\mathrm{out, outlet}} }{ \sum Q_{\mathrm{outlet}} \cdot A_{\mathrm{cell}} } \cdot 1000 \quad [\mathrm{mg/L}]

11. Total washed mass

The cumulative washed pollutant mass is:

Mwashed=Wout,totΔt[kg]M_{\mathrm{washed}} = \sum W_{\mathrm{out,tot}} \cdot \Delta t \quad [\mathrm{kg}]

12. Numerical constraints

The model enforces:

  • minimum pollutant threshold:
b<bminWout=0b < b_{\min} \Rightarrow W_{\mathrm{out}} = 0
  • minimum flow threshold:
qout10[mm/h]q_{\mathrm{out}} \ge 10 \quad [\mathrm{mm/h}]

to avoid numerical instability.


Summary

The HydroPol2D water quality model:

  • tracks pollutant mass per cell,
  • computes wash-off as a function of flow and storage,
  • redistributes pollutants across the domain,
  • ensures strict mass conservation,
  • uses adaptive time stepping to maintain stability.

It provides a robust and flexible framework for simulating pollutant transport coupled with hydrologic and hydrodynamic processes.