This is the 2D-native counterpart to the 3D PID module simulator. Instead of orbiting a cell grid, it simulates the ion migration itself: each sodium ion performs a free 1D random walk (Euler–Maruyama integration of Brownian motion, dW = √(2·D·dt)·N(0,1)) starting from the frame edge. By the reflection principle, the fraction of a large ensemble of such walkers whose absolute displacement exceeds a depth d at time t is exactly:
P(|W(t)| > d) = erfc( d / (2·√(D·t)) ) = C(d,t)/C0
D(T) = D0 · exp(−Ea / (kB·T)) [Arrhenius, Ea = 0.8 eV]
D_eff = D(T) · (|V|/Vref) · (RH/100)^1.5
— the identical closed-form drift-diffusion law used by the 3D simulator, but reached here by literally stepping a stochastic ensemble instead of placing ions from the formula directly. The upper strip shows the live particle swarm's depth positions; the concentration curve above it is the same ensemble's empirical survival profile, converging to the erfc curve as more steps accumulate.
The Arrhenius panel plots ln(D) against 1000/T(K) — the straight-line diagnostic used to extract activation energy from real PID accelerated-test data — with the current operating point marked, plus the separate voltage and humidity multipliers that scale the Arrhenius baseline up to Deff.
The bottom strip plots the front depth d₅₀ (where concentration crosses half its boundary value) against √(elapsed hours). Fickian diffusion predicts this is exactly linear — the dashed reference line is the theoretical slope 0.954·√D for the current settings, so you can watch the live trace track it.
- Voltage bias — scales Deff directly; more negative accelerates every trace.
- Temperature — moves the operating point along the Arrhenius line; every +10 °C roughly doubles D.
- Humidity — raises both the humidity multiplier and the boundary ion concentration C0.
- Diffusivity changes made mid-run are integrated correctly: the engine accumulates ∫D dt rather than multiplying the current D by total elapsed time.