EcoSym

Nutrient Cycling Overview

Every process in the simulator — photosynthesis, feeding, respiration, death, decomposition — is fundamentally about nutrients moving from one pool to another. Understanding these flows is the key to understanding why ecosystems succeed or fail.


The Big Idea

In a real aquatic ecosystem -- and in this simulator -- the same atoms get used over and over again. A nitrogen atom might start dissolved in the water, get absorbed by algae, get eaten by a tiny shrimp, get excreted back into the water, and then get absorbed by algae again. Nutrients are not created or destroyed (with one important exception described below). They just move between different "pools": living organisms, dead organic matter, and dissolved chemicals.

The simulator tracks these pools and moves nutrients between them according to the rules of biology and chemistry. Every process -- photosynthesis, eating, breathing, dying, decomposing -- is really just nutrients moving from one pool to another.


The Elements We Track

Nitrogen (N) is the main currency of the model. It is often the nutrient most likely to run out first (the "limiting nutrient"), and it is present in every living thing. The simulator tracks nitrogen in two dissolved inorganic forms -- ammonium (NH4) and nitrate (NO3) -- as well as in living biomass, dead organic matter (detritus), and dissolved organic matter (DOM).

Phosphorus (P) is the other key limiting nutrient. The simulator tracks dissolved inorganic phosphorus as orthophosphate (PO4), which is the form taken up by algae and bacteria. Phosphorus is also tracked in living biomass, detritus, and DOM. Growth is limited by whichever nutrient -- nitrogen or phosphorus -- is scarcest (Liebig's law of the minimum). Phosphorus cycles through the system in parallel with nitrogen: organisms take up PO4 for growth, pass it through the food web via grazing, and release it back to PO4 through excretion, decomposition, and DOM photodegradation.

Carbon (C) is the backbone of all organic molecules and the element most directly tied to energy. Carbon enters living things through photosynthesis (algae pull CO2 out of the water and build it into sugars) and returns to the water as CO2 when organisms breathe or when dead matter decomposes. Carbon can also move between the water and the air space above it as CO2 gas.

Oxygen (O2) is produced by photosynthesis and consumed by nearly everything else -- breathing, digestion, decomposition, and the conversion of ammonium to nitrate by nitrifying bacteria. Oxygen moves between the water and the air space above it, and its concentration swings up and down with the day/night light cycle.

Silicon (Si) — diatoms only. Dissolved silica (DSi; orthosilicic acid, H₄SiO₄) is an essential nutrient for diatoms, which incorporate it into their siliceous cell walls (frustules). The simulator tracks DSi as a core water-column pool (mol Si) and biogenic silica (frustule Si) as a shared pool that accumulates during diatom mortality and dissolves back to DSi on a timescale of days to weeks. Silicon does not limit any other organism in the model.

Calcium (Ca²⁺) — shell building and mineral equilibrium. Dissolved calcium is consumed by shell-building organisms (bladder snails and Neocaridina shrimp) and participates in CaCO₃ precipitation/dissolution equilibrium. Ca²⁺ is initialized from the scenario's GH setting (65% of total divalent cations by default) or from an explicit Ca_mg value. In scenarios with active calcifiers, Ca²⁺ declines over time as shells and exoskeletons are built. Calcareous substrates (crushed coral, aragonite sand) can replenish Ca²⁺ by dissolving when the water is undersaturated. Every CaCO₃ reaction -- biological or abiotic -- also consumes or produces 2 mol of alkalinity per mol Ca, making calcium cycling a significant alkalinity pathway.

Magnesium (Mg²⁺) — conservative. Dissolved magnesium is tracked as a core pool and contributes to general hardness (GH) alongside calcium. Unlike calcium, which is consumed by shell-building organisms (snails, shrimp), magnesium currently has no biological sinks in the model. Mg²⁺ is initialized from the scenario's GH setting (35% of total divalent cations by default) or from an explicit Mg_mg value. Because Mg is conservative, the GH_dGH column in the CSV declines over time primarily due to Ca depletion while the Mg contribution holds steady.

Potassium (K⁺) — macro that looks like a trace. Dissolved potassium is the third NPK macro: an obligate intracellular cation, osmotic regulator, and cofactor for over sixty enzymes. Biogeochemically K is mercifully simple — K⁺ is the only relevant species, with no redox cycling, no precipitation, and no gas exchange — so the simulator tracks it as a single dissolved water-column pool plus an optional pore-water compartment for substrate scenarios. Biologically K is large: every producer carries a Monod growth gate on K (bundled into the Liebig min alongside N and P), and macrophytes are particularly K-demanding (K:C ≈ 5 × 10⁻²). The simulator also supports formless K dosing (K2SO4 / KCl / KNO3 — all deliver K⁺ to the same pool) so the planted-tank Estimative Index workflow runs end-to-end. K is reported in mg/L (not µg/L) and conservative under water change with tap-water refill; substrate scenarios additionally route soil-OM K release into pore K and back-diffuse dosed K downward via Fickian diffusion. See the Potassium Cycle for per-class K:C ratios, the dual-uptake macrophyte kinetics, and the EI-dosing trigger that promoted K to Tier A.

Iron (Fe) — redox-driven trace nutrient. Iron is a trace element whose availability is controlled almost entirely by redox state. Under oxic conditions, dissolved Fe oxidises within hours to insoluble Fe(III)-oxide particles that settle onto the sediment; in the anoxic zone below, microbes reduce Fe(III) back to soluble Fe²⁺ using organic carbon as an electron donor. The simulator tracks dissolved Fe as a core pool and sediment Fe(III)-oxide as a shared pool (present only in scenarios with soil substrate). Despite its tiny concentrations (nanomolar in oxic freshwater, micromolar in reducing groundwater), iron is structurally essential to nitrogenase (N₂ fixation), ammonia monooxygenase (nitrification), nitrate reductase (denitrification), and chlorophyll / cytochrome synthesis (photosynthesis) — so Fe limitation pinches simultaneously across the nitrogen and carbon cycles. Iron also couples directly into the phosphorus cycle: fresh ferrihydrite scavenges PO₄ on oxidation, and internal P-loading releases that bound phosphate back to pore water when sediments go anoxic.

Molybdenum (Mo) — the trace metal behind nitrate use. Molybdenum sits at the active site of two nitrogen cycle enzymes: nitrate reductase, which every organism that grows on nitrate depends on, and nitrogenase, the enzyme cyanobacteria use to fix nitrogen gas. Its chemistry is mercifully simple — molybdate stays dissolved and does not precipitate or change form at aquarium pH — so it moves through the tank as a single dissolved pool with no sediment or pore-water complications. Concentrations are tiny, from a fraction of a microgram up to a few micrograms per litre. When molybdenum runs short, producers shift their nitrogen preference toward ammonium (which needs no nitrate reductase), and cyanobacterial nitrogen fixation can shut down at very low molybdenum even when iron is plentiful. See Micronutrient Cycling for the per-species detail.

Zinc (Zn) — the trace metal behind bicarbonate use. Zinc is the metal at the heart of carbonic anhydrase, the enzyme that interconverts CO₂ and bicarbonate and underpins every photosynthetic carbon-concentrating mechanism. Without it a cell cannot pull bicarbonate out of high-pH water, so a zinc-starved producer falls back to plain diffusional CO₂ uptake and hits carbon limitation much sooner. Zinc also turns up throughout animal tissue, so consumers carry more of it than the matter they feed on and release the surplus when they die. Like molybdenum, it cycles as a single dissolved pool. Typical freshwater runs 1–10 µg/L; tap water drawn through galvanised plumbing can reach 50 µg/L or more. See Micronutrient Cycling for how zinc gating interacts with pH-driven bicarbonate reliance.

Nickel (Ni) — cofactor for urea recycling. Nickel is the metal at the active site of urease, the enzyme nearly every freshwater microbe and alga uses to break urea down into ammonium, and of the uptake-hydrogenase that nitrogen-fixing cyanobacteria use to recover the hydrogen their nitrogenase leaks. It cycles as a single dissolved pool. Pristine freshwater holds less than a microgram per litre, treated tap water around 1.5 µg/L, and steel or nickel-plated plumbing can push it past 10 µg/L. At those levels nickel is essentially never the nutrient that runs out first — the simulator tracks it for completeness rather than as a common bottleneck. See Micronutrient Cycling.

Boron (B) — the cell-wall crosslinker. Boron is the one micronutrient that does its main job in the cell wall rather than inside an enzyme: it crosslinks the pectin scaffold of every vascular plant, so rooted, floating, and submerged macrophytes all carry several times more boron than the algae around them. It also helps stabilise the silica wall of diatoms as the frustule hardens and deposits into the heterocyst envelopes of nitrogen-fixing cyanobacteria. Boron stays dissolved as a single pool — the boric acid and borate forms interconvert almost instantly and plants absorb both. Pristine freshwater holds 10–50 µg/L, karst aquifers and well water 50–100 µg/L, volcanic and geothermal water can reach milligrams per litre, and seawater sits around 4500 µg/L. Across that ordinary freshwater range boron almost never limits growth; deficiency shows up only in pure RO water with no remineralisation, and toxicity only with heavy-handed dosing. See Micronutrient Cycling.

Cobalt (Co) — the metal inside vitamin B₁₂. Cobalt sits at the centre of vitamin B₁₂, a coenzyme that only certain bacteria and archaea can build from scratch. Every alga, animal, and aquatic fungus has to get its B₁₂ from that bacterial supply, so cobalt quietly ties the microbial community to the rest of the food web through a shared vitamin currency. A second, smaller role appears in cyanobacteria, which can substitute cobalt into carbonic anhydrase when zinc is scarce (Saito 2002). Cobalt cycles as a single dissolved pool. Pristine freshwater holds 0.05–0.3 µg/L, treated tap water around 0.1 µg/L, and volcanic or well water 0.4–0.5 µg/L. See Micronutrient Cycling.


The Basic Cycle

Here is the nutrient cycle in plain language:

  1. Dissolved nutrients in the water (ammonium, nitrate, phosphate, CO2) are taken up by algae during photosynthesis. Algae use light energy to build these simple chemicals into complex organic molecules -- their own biomass. This also produces oxygen.

  2. Grazers (copepods, daphnia, and similar small animals) eat the algae. They keep what they need for their own bodies and release the rest: carbon dioxide from breathing, ammonium and phosphate from excreting excess nitrogen and phosphorus, and fecal pellets that become detritus.

  3. Organisms die. Dead biomass becomes detritus -- suspended particles floating in the water or settled material on the bottom.

  4. Decomposition breaks detritus down. Some of it is converted directly back into dissolved nutrients (ammonium, phosphate, and CO2). Most of it first becomes dissolved organic matter (DOM), which bacteria and fungi then consume.

  5. Bacteria eat the labile DOM, grow, breathe, and release ammonium, phosphate, and CO2 back into the water. Fungi specialize in the refractory fraction -- tough, humic-like compounds that bacteria handle poorly. Fungi break down this refractory material and convert about 20% of it into labile DOM through fungal conditioning, making it available for bacteria to consume. Both bacteria and fungi can be eaten by grazers (bacteria directly; fungi via their chytrid zoospores), completing the "microbial loop."

  6. Nitrifying bacteria convert ammonium into nitrate, consuming oxygen in the process. Both ammonium and nitrate can be used by algae, so this is another link in the cycle.

  7. The dissolved nutrients are now available for algae to take up again, and the cycle continues.


Soil Organic Matter and Pore Water (Walstad Substrates)

Some scenarios include a buried organic substrate layer (manure, compost, peat, or bark) that acts as a long-term nutrient reservoir — the approach used in planted "Walstad-style" aquaria. This substrate is tracked as two distinct pools:

  • Labile soil OM (manure/compost): mineralizes at about 0.24% per day at 20°C, releasing nutrients over weeks to months.
  • Refractory soil OM (peat/bark): mineralizes at about 0.012% per day — roughly 20 times slower — sustaining the tank over years.

The products of soil mineralization do not go directly into the water column. Instead, they accumulate in pore water: the interstitial water trapped between soil particles. Three pore water pools are tracked — pore NH4, pore NO3, and pore PO4. Fresh substrates also start with non-zero dissolved nutrients in their pore water — from fertilizer granules dissolving on submersion and exchangeable NH4 desorbing from soil particles — which provides an immediate nutrient pulse before mineralization has had time to act. From pore water, nutrients reach the water column via root uptake by rooted plants (a separate process) and Fickian diffusion through the sand cap (pore_water_diffusion process; Fick 1855). Pore water NO3 is also an active denitrification substrate via coupled nitrification-denitrification (Nielsen 1992).

Soil mineralization rates depend on temperature (Q10 = 2.0), oxygen (faster under aerobic conditions, reduced to 15% of aerobic rate under full anoxia), and heterotrophic bacteria (which produce extracellular enzymes that stimulate hydrolysis). CO2 released during soil mineralization goes to a dedicated pore CO2 pool, not directly to the water column. From there it reaches the water column via the same Fickian diffusion process as NH4, NO3, and PO4 — but roughly 2.8 times faster, because CO2 has a higher free-water diffusivity. Rooted macrophytes can also draw pore CO2 directly through root aerenchyma, bypassing the water column entirely.

In scenarios without soil substrate, all soil OM and pore water pools remain at zero and have no effect on the simulation.

Calcareous substrates (crushed coral, aragonite sand) are handled separately from organic soil OM. They contain no significant nitrogen or phosphorus, so they do not interact with the soil mineralization or pore water diffusion processes. Instead, their CaCO₃ content is tracked in the CACO3_SUBSTRATE pool and coupled to GH and alkalinity via the caco3_equilibrium process. The crushed_coral and aragonite_sand soil presets auto-inject this process when used. See Carbonate System — CaCO₃ Precipitation and Dissolution for details.

For details on organic OM rates, stoichiometry, and configuration, see Soil Organic Matter and Pore Water Diffusion.


How Nitrogen Can Leave (and How It Can Be Conserved)

There are two processes in the model that can remove nitrogen from the system:

Denitrification happens in oxygen-free zones within settled sediment, where specialized bacteria use nitrate instead of oxygen for respiration. They convert nitrate into nitrogen gas (N2), which escapes from the water and is lost. This is typically the dominant nitrogen loss pathway.

NH3 volatilization can remove nitrogen in open or leaky systems. Dissolved NH3 (the unionized form of ammonia) can escape from the water into the headspace, and if the headspace leaks, it is lost to the atmosphere. This pathway is minor at low pH (where almost all ammonia is in the non-volatile NH4+ form) but can become significant at high pH (above 9) in open systems.

However, not all anaerobic nitrate reduction leads to nitrogen loss. DNRA (dissimilatory nitrate reduction to ammonium) is an alternative pathway that competes with denitrification in anoxic sediments. Instead of converting NO3 to N2 gas, DNRA converts NO3 to NH4, keeping nitrogen in the system. DNRA is favored when organic carbon is abundant relative to nitrate (high C:NO3 ratio), which is common in small closed systems with substantial detritus. This means that in organic-rich conditions, the system naturally shifts toward nitrogen conservation rather than nitrogen loss.


Carbon Enters and Leaves as CO2

Unlike nitrogen, carbon has a route in and out of the system through gas exchange. CO2 dissolved in the water can escape into the headspace (the air gap above the water), and CO2 from the headspace can dissolve back into the water. If the system is not fully sealed, CO2 in the headspace can also leak to the outside atmosphere. This means carbon is not strictly conserved in a closed mass balance sense the way nitrogen (mostly) is.


Oxygen Rises and Falls with the Light

During the day, photosynthesis pumps out oxygen. At night, photosynthesis stops but everything keeps breathing and decomposing, so oxygen drops. This diurnal cycle is one of the most important dynamics in the system. What matters for long-term stability is the 24-hour balance: does the daytime oxygen production outweigh the nighttime consumption? If not, the system will gradually run out of oxygen, which is bad for everything living in it.


Further Reading

For a complete breakdown of every pathway modeled for each element, see:

Last updated: 6/7/2026