Side view of an ash plume. Collisions separate charge into a lower (negative) and an upper (positive) layer; when the electric field anywhere on the axis exceeds the breakdown field of the thin air at that height, a flash neutralises part of the charge.
The science
Plume height (Sparks et al. 1997). H[km] = 1.67 Q^0.259, with Q = M/rho_DRE the dense-rock-equivalent volume flux in m^3/s (rho_DRE = 2500 kg/m^3). The empirical fit scatters by roughly 30 percent.
Atmosphere. rho(z) = rho0 exp(-z/H_s), H_s = 8.4 km. Dry-air breakdown scales with density: E_b(z) = k_b * 3 MV/m * rho(z)/rho0, floored at 20 kV/m because the linear density scaling fails in very thin air (Paschen minimum). The factor k_b < 1 stands for wet, ice- and ash-laden air where sharp grains and hydrometeors enhance the local field; it is a tunable simplification, not a measured constant.
Charge model. Two Plummer-softened clouds of radius R at z1 = 0.38 H (charge -Q) and z2 = 0.72 H (+Q). A cloud contributes E = k q r / (r^2 + R^2)^(3/2) with k = 1/(4 pi eps0). The ground is a conductor, handled with image charges of opposite sign at -z. The wind bends the plume axis, x(z) ~ U (z/H)^2.
Charging. dQ/dt = M q_s - Q/tau. q_s is the net charge separated per kg of ash (laboratory fracto-emission and triboelectric charging give of order 0.1 to 10 uC/kg); tau lumps conduction by ions and charge exchange. Steady state Q_ss = M q_s tau. A flash starts when the maximum over the axis of |E|/E_b reaches 1 and removes a fraction f of Q: dU = |U| (1 - (1-f)^2), where U is the dipole interaction (separation) energy, which scales as Q^2.
Honest simplifications. The real plume is turbulent, the charge structure is more complex (often a tripole), flashes are branched leaders with stepped propagation, and near-vent discharges come from fresh fragmentation rather than cloud charging. This page shows the energy budget and the scaling, not a forecast. Charge, field and energy values are order-of-magnitude only.