This is the 2D counterpart to the 3D instanced-node aerogel pellet — same Knudsen-diffusion / Thiele-modulus physics, but instead of colouring nodes from the closed-form steady-state formula, this version numerically time-steps the actual transient spherical diffusion-reaction PDE on a radial grid and lets the concentration field fill in from the pellet surface inward, frame by frame, until it settles:
∂C/∂τ = (1/x²) ∂/∂x(x² ∂C/∂x) − φ² C , x = r/R ∈ [0,1], τ = t·D_eff/R²
C(1,τ) = 1 (surface), ∂C/∂x|_{x=0} = 0 (centre symmetry)
The grid is deliberately non-uniform — points cluster near the surface (x=1) — because for a high Thiele modulus the concentration collapses to nearly zero within a boundary layer only ~1/φ wide; a uniform grid can't resolve that, but a graded one can (verified numerically, see below). Each animation frame advances the field with an implicit (unconditionally stable) finite-volume step solved by the Thomas tridiagonal algorithm, so the scheme stays stable across the whole slider range, not just for gentle cases.
The left disk is a true cross-section through the pellet centre (a planar cut through a sphere's centre is itself a disk of the same radius, and 2D distance from centre along that cut equals the real 3D radial coordinate r) — colour comes straight from the live, still-converging numerical field, not a pre-computed formula. The right-hand graph plots that same live profile C(x) against the exact steady-state analytical curve (dashed) so you can watch the numerical solve converge onto it in real time.
- Pellet radius R — larger pellets raise φ and push the profile toward a diffusion-starved core.
- Pore diameter dp — wider pores raise the Knudsen diffusivity DK, speeding transport, but a fixed skeletal volume then packs less surface into the same mass (BET area ≈ 6/(ρs·dp) for a cylindrical-pore model).
- Rate constant k — models catalyst loading/activity or temperature (via the Arrhenius law); higher k raises φ for the same geometry.
- Any slider change resets the field to zero and replays the transient fill-in from the new surface value — "Replay" does the same without changing parameters.