An interactive companion to our paper: G. Origer, R. R. Raj, N. Jarvey, P. N. Romero Zavala, W. A. Smith and A. Gupta, “Rethinking balance sheets: A Poisson-Nernst-Planck based approach for modeling concentration and flux profiles inside an electrochemical cell,” Chemical Engineering Science, 2026, 124600, doi:10.1016/j.ces.2026.124600.
If you have taken a chemical engineering course on electrochemical systems, chances are you have seen something that looks like the figure below: a one-dimensional cell with a cathode on one side, an anode on the other, and, alongside it, a tidy bookkeeping table that splits the current into a "diffusive" part near the electrodes and an "electromigrative" part everywhere else. That table (below) is the balance sheet, and the recipe behind it is the balance sheet analysis (BSA). It is the entry point that BFW gives in Ch. 4 to a beginner trying to make sense of mass transfer in an electrochemical cell.
This post has a personal origin. Some of us took a course in which the balance sheet was taught exactly this way, and came away genuinely confused about where the diffusive contribution goes in the bulk and why the numbers stop balancing there. That confusion turned out not to be a student failing: when we later put the same questions to an expert in the field, they were puzzled by the construction too. That is what prompted us to work the examples out properly.
| Species | Electromigration (bulk) | Diffusion (near electrode) | Total (at electrode) |
|---|---|---|---|
| Cu(II) | −1 | −5 | −6 |
| Cu(I) | −1 | +7 | +6 |
| Cl⁻ | +3 | −3 | 0 |
The balance sheet is appealing because it requires only arithmetic. But the cost of that simplicity is a set of assumptions that are never really justified, and some of them turn out to be wrong even for the very examples BFW uses to illustrate the method. The goal of this post, and of the paper it is based on, is to ask whether the balance sheet analysis (BSA) holds up when you solve the transport equations from first principles, and to give you a hands-on tool to see for yourself where the two pictures agree and where they part ways.
We focus on the same cell that BFW does: a one-dimensional copper redox cell. The electrolyte contains three ions — copper(II), copper(I), and chloride, in a background electrolyte of ammonia. At the left electrode (the cathode, $\tilde{x}=-1$) Cu(II) is reduced to Cu(I); at the right electrode (the anode, $\tilde{x}=+1$) the reverse happens. Chloride is inert (it does not react at either electrode), but it is required to keep the solution electroneutral.
Following BFW we make one simplifying assumption that keeps the algebra clean: the limiting equivalent conductances of the three ions are equal. With $\lambda_g = (F^2/RT)|z_g|D_g$, this fixes the diffusivity ratios:
The single dimensionless control knob in this problem is the imposed current density:
The recipe BFW follows is short:
For our cell at $k=6$ electrons per unit time, the recipe spits out the famous BFW table: an electromigrative atomic transport rate of $\{-1,-1,+3\}$ for $\{$Cu(II), Cu(I), Cl$^-\}$ everywhere in the bulk, plus a diffusive rate of $\{-5,+7,-3\}$ confined to a thin region near each electrode.
This works, in the sense that the numbers add up to the imposed reaction rate at the wall. But it has problems. We highlight five.
The PNP equations resolve all five.
The Poisson–Nernst–Planck (PNP) framework is just three building blocks: a species balance for each ion, a flux law (Nernst–Planck) that includes both diffusion and electromigration, and a constraint on the electric field (Poisson). For a thin-double-layer system, the regime relevant here, Poisson reduces to electroneutrality.
Start from the statement that each species is conserved:
and note that the flux $\tilde{N}_g$ has exactly two contributions:
Putting the two together gives the equation we actually solve:
That second expression is worth a sentence, because it is doing a lot of work. We never solve a separate equation for $\tilde\phi$. Instead, multiply each species balance by $z_g$ and sum over species: electroneutrality makes the left-hand side vanish, which forces the current $\tilde{j} = \sum_g z_g \tilde{N}_g$ to be independent of position. Evaluating it at either electrode fixes its value at the imposed current, and solving that statement for $\partial\tilde\phi/\partial\tilde{x}$ gives the expression above. In other words, the potential gradient is whatever it has to be, at each point, to keep the current uniform.
An aside on a common misconception: electroneutrality does not mean a constant electric field. It is a simplification of Poisson's equation in the thin-double-layer limit, but $\partial\tilde\phi/\partial\tilde{x}$ is generally a function of position because the concentrations $\tilde{C}_g(x)$ vary.
The boundary conditions impose the surface reaction rates: $\tilde{N}_\mathrm{Cu(II)} = -\mathcal{J}$, $\tilde{N}_\mathrm{Cu(I)} = +\mathcal{J}$, $\tilde{N}_\mathrm{Cl^-} = 0$ at both walls. Initial conditions are uniform: $\tilde{C}_\mathrm{Cu(II)}=\tilde{C}_\mathrm{Cu(I)}=1$, $\tilde{C}_\mathrm{Cl^-}=3$. That's the entire problem statement.
The widget below solves the steady-state PNP equations in your browser. Drag the current slider $\mathcal{J}$ and watch four things happen: (i) the concentration profiles develop slopes; (ii) the electromigrative flux $\tilde{N}_{m,g}$ becomes spatially varying; (iii) the diffusive flux $\tilde{N}_{d,g}$ is non-zero throughout the cell, not just at the electrodes; and (iv) the total flux $\tilde{N}_g$ stays beautifully flat — as it must at steady state, because each species is conserved.
The dashed lines are the balance sheet predictions. Where they agree with PNP and where they don't is the whole story.
Without concentration profiles, one thing the BSA cannot do is tell you when its own answer stops being physically attainable. Push the current slider above to about $\mathcal{J}\approx 0.6$. Above this current the Cu(II) concentration profile gets steeper and steeper at the cathode, until it is driven to zero. At that point the surface reaction is starving for reactant: ions cannot be supplied to the wall fast enough to sustain the imposed current. This is the limiting current, and for this cell (with no supporting electrolyte) it sits at $\mathcal{J}_\mathrm{lim}\approx 0.7$.
Two things to notice:
In real electrochemistry, you often add a large excess of an inert salt (a "supporting electrolyte" — here, NaClO$_4$). Drag the $R$ slider to $100$. Two things happen:
So the BSA is not wrong everywhere. It comes closest to being right when you have a strong supporting electrolyte and you are looking at the trace reactive species. The difficulty is that BFW presents the balance sheet as a general recipe, and applies it to cells (including the copper cell above, which has no supporting electrolyte) where that condition is not met.
Another important regime is early times. What happens before the surface reactions have had a chance to perturb the bulk? There the concentration profiles really are nearly flat, just as the BSA assumes. So perhaps the BSA is a snapshot of an early-time state?
It is, sort of. The widget below solves the time-dependent PNP equations starting from the uniform initial condition. Hit play and watch the profiles evolve. We track three things: the concentration field, the total flux $\tilde{N}_g(\tilde{x})$, and the current density $\tilde j(\tilde{x}) = \sum_g z_g \tilde{N}_g$. At every time, current is a constant in $\tilde{x}$ (electroneutrality enforces it), but the individual fluxes are only constant once steady state is reached.
At $\tau \approx 0.05$, the bulk concentration profiles, and therefore the total flux profiles, are nearly flat. The BSA would then say "in the bulk, only electromigration matters," and at this single time slice it's a defensible statement. By $\tau \approx 0.25$ the gradients have invaded the bulk, and by $\tau \approx 5$ the system has settled into the steady-state profile from the previous widget.
The conclusion is worth stating plainly: the BSA is an early-time approximation (and even there it gets some of the details wrong), even though it is presented (in BFW and elsewhere) as a general analysis. The transient solution makes that explicit.
The third example in BFW is HCl electrolysis. Here both the cation (H$^+$) and the anion (Cl$^-$) react: H$^+$ is reduced to H$_2$ at the cathode, Cl$^-$ is oxidised to Cl$_2$ at the anode. The diffusivity ratio is large — H$^+$ diffuses about $4\times$ faster than Cl$^-$ — so the picture differs from the copper cell.
Because both species are electroactive, the salt concentration drops near both electrodes. For early times (before the depletion fronts from the two electrodes meet in the middle), there is a beautiful closed-form solution: a similarity-variable expression involving the complementary error function. We use it here as Interactive #3.
Two features are worth pausing on, because they mirror what the first two widgets showed. First, look at the flat middle of the salt profile at small $\tau$: the interior has not heard from the electrodes yet, so the bulk really is gradient-free and the BSA numbers there are close to right. Slide $\tau$ up and watch that flat region shrink from both sides. Once the two fronts approach each other, the bulk the BSA relies on has effectively disappeared.
Second, compare the solid and dashed curves near the walls. The BSA puts a sharp step in the diffusive flux at the edge of its notional boundary layer and holds the electromigrative flux constant right through it. The similarity solution instead turns over smoothly, and the split between the two mechanisms changes continuously across the depletion zone. The asymmetry between the two panels is physical rather than numerical: $\mathscr{D}_\mathrm{H} = 4\mathscr{D}_\mathrm{Cl}$, so the slower Cl$^-$ needs a steeper gradient to carry the same reaction rate, which is why its front is sharper and its diffusive flux does relatively more of the work.
If you teach this material, we hope you can see that the BSA is a fine zero-level approximation, but that it should be presented alongside its assumptions and the conditions under which they are or are not satisfied. If you are learning this material, hopefully the widgets above help you understand the material better.
All three solvers run entirely in your browser. The steady state is a Newton solve on a discretised form of the steady PNP equations, the transient is explicit finite-difference time stepping, and the H-cell uses the closed-form similarity solution. Both sliders are capped where the in-browser solvers stop being reliable: the current at $0.95\times\mathcal{J}_\mathrm{lim}$ (which itself falls as you add supporting electrolyte), and the H-cell time at $\tau = 0.15$, where the depletion fronts meet and the similarity solution stops being valid. To go past either cap, use the Python and MATLAB solvers provided with the supplementary material of the publication, which is what produced every figure in it.
The paper. G. Origer, R. R. Raj, N. Jarvey, P. N. Romero Zavala, W. A. Smith and A. Gupta, "Rethinking balance sheets: A Poisson-Nernst-Planck based approach for modeling concentration and flux profiles inside an electrochemical cell," Chemical Engineering Science, 2026, 124600. doi:10.1016/j.ces.2026.124600. The Python and MATLAB source codes reproducing every figure are provided with the supplementary material of the publication.
Acknowledgements. RR thanks the National Science Foundation (DGE-2040434) Graduate Research Fellowship for financial support. AG thanks the NSF CAREER award #2238412 for financial support. The authors thank Adam Holewinski for his useful input on the manuscript.
A note on AI. This blog post, including its text and the interactive widgets, was created with the help of AI. AI was not used to write the manuscript text; there, it was used only to help organise our code.