Unlike a well-mixed tank, a real lake is spatially patchy: this model solves the same four-level Holling type-II trophic cascade as a 2D reaction-diffusion system on a grid representing the lake surface, so algae blooms and grazing fronts move and spread rather than only rising and falling as one shared number:
∂A/∂t = rA·A·(1−A/K) − gZA·Z·A/(hA+A) + DA·∇²A
∂Z/∂t = eZ·gZA·Z·A/(hA+A) − mZ·Z − mZ2·Z² − gFZ·F·Z/(hZ+Z) + DZ·∇²Z
∂F/∂t = eF·gFZ·F·Z/(hZ+Z) − mF·F − mF2·F² − gPF·P·F/(hF+F) + DF·∇²F
∂P/∂t = eP·gPF·P·F/(hF+F) − mP·P + source(dock) + DP·∇²P
K = K0 + kNutr·[nutrient loading]
- Piscivore stocking injects fish at a single dock point rather than uniformly. Unlike simple logistic spreading (which would give a smooth Fisher–KPP front at speed ≈ 2√(r·D) — verified separately for the pure algae-growth case), a piscivore's own growth here depends on prey it hasn't caught up with yet, so what you actually see is closer to pulsed grazing waves: the local food web overshoots, crashes, and re-triggers, radiating outward from the dock rather than advancing as one steady line.
- Nutrient loading raises the algal carrying capacity K everywhere (bottom-up pathway).
- Grazing efficiency scales how fast zooplankton clear algae per capita.
- Self-limitation terms (mZ2, mF2) — a standard stabilising addition to Holling type-II predator–prey models (quadratic density-dependent mortality, representing intraspecific competition/disease) — keep the zooplankton–algae cycle from crashing to full extinction each period, which a plain Holling-II cascade is prone to (the "paradox of enrichment").
- Secchi depth is estimated from the lake-average phytoplankton biomass via a Beer–Lambert-style attenuation proxy, exactly as a real limnologist measures it.
Below a stocking threshold nothing happens at all — the lake just sits at its algae-saturated equilibrium indefinitely, since there isn't enough local predation to ever kick the cycle loose. Above it, watch clearing pulses radiate out from the dock: a spatial, intermittent version of biomanipulation a well-mixed tank model cannot show.