The 3D simulator treats each rack tier as one well-mixed compartment and chains four tiers with a discrete mass balance. This 2D simulator instead numerically integrates the continuous field the compartment model approximates: a 1D advection-diffusion-reaction PDE for CO₂ concentration C(z,t) along the rack's height z, solved with an explicit finite-difference (FTCS) scheme.
∂C/∂t = −v·∂C/∂z + D·∂²C/∂z² − Uptake(C,z)
Uptake(z) = Umax · density · [L/(L+Ksat)] · [C/(C+Km)] · canopy(z)
canopy(z) = 1 inside each tier's leaf zone, tapering to 0 in the
open plenum near that tier's fan — a periodic sink strength,
not a single lumped number per tier.
Boundary conditions: C(0,t) = injection setpoint (Dirichlet, fresh
supply air) · ∂C/∂z|_top = 0 (Neumann, no forced flux out the top)
Every animation frame re-solves this field with real finite-difference stepping — the color gradient in the column and the curve in the strip beside it are the literal computed C(z), not an interpolation between four fixed numbers. The discretization is built so that, cell by cell, the sum of all local rates of change equals exactly (inflow at the bottom − outflow at the top − total uptake integrated over the column): the "Mass-balance residual" readout continuously re-checks that identity against the live field.
- Ventilation — sets both the upward advection velocity v = ACH·H/3600 and the turbulent eddy diffusivity D; more ACH pushes the field flatter and faster toward the injection value.
- Plant density — scales the sink strength Umax·density everywhere canopy(z) is nonzero, so it can starve the column even with strong injection.
- Light intensity — raises the light-saturation factor L/(L+Ksat), which raises demand and steepens the depletion near the canopy.
- CO₂ injection setpoint — the fixed Dirichlet value at z = 0, i.e. the fresh air entering the bottom of the column.
Real-world relevance: sealed, densely-stacked grow rooms develop genuine spatial CO₂ gradients along their height, and this PDE — not a four-number lookup table — is the actual continuum model that a compartmental design tool is discretizing when it treats each tier as "one number."