Version: dev

StochasticCollectionGolovin

Two-moment stochastic collection equation (SCE) for cloud-droplet coalescence (Tzivion, Feingold & Levin 1989), scalarized to I=5 mass-doubling categories. Two models, one per collection kernel: StochasticCollectionConstant (K=K0) and StochasticCollectionGolovin (K=C(x+y)). Each tracks number concentration N_k and mass concentration M_k in every category and closes the higher moments with the non-dimensional parameter xi_p. Migrated from the array-variable @component in Aerosol.jl src/stochastic_collection.jl @ c8c640bb636b22f2425460e9ed5cba50793bfee1 (esm-ar1e); the upstream @arrayop/@makearray array operations were scalarized to flat scalar states and equations.

Domain
aerosol
Type
model
.esm schema
1.0.0
Source
components/aerosol/stochastic_collection.esm
Tags
#aerosol #model #cloud-microphysics #coalescence #stochastic-collection-equation #two-moment #size-distribution

Description

Two-moment stochastic collection equation (SCE) for cloud-droplet coalescence (Tzivion, Feingold & Levin 1989), scalarized to I=5 mass-doubling categories. Two models, one per collection kernel: StochasticCollectionConstant (K=K0) and StochasticCollectionGolovin (K=C(x+y)). Each tracks number concentration N_k and mass concentration M_k in every category and closes the higher moments with the non-dimensional parameter xi_p. Migrated from the array-variable @component in Aerosol.jl src/stochastic_collection.jl @ c8c640bb636b22f2425460e9ed5cba50793bfee1 (esm-ar1e); the upstream @arrayop/@makearray array operations were scalarized to flat scalar states and equations.

Reference

Tzivion, S., Feingold, G., and Levin, Z.: The Evolution of Raindrop Spectra. Part II: Collisional Collection/Breakup and Evaporation in a Rainshaft, J. Atmos. Sci., 46(21), 3312-3327, 1989.

Source: Aerosol.jl src/stochastic_collection.jl @ c8c640bb636b22f2425460e9ed5cba50793bfee1 (migration bead esm-ar1e); the upstream @component StochasticCollectionCoalescence with kernel_type=golovin. The upstream model solves the two-moment stochastic collection equation (SCE) for cloud-droplet coalescence (Tzivion et al. 1989) over I mass-doubling categories, tracking number N_k and mass M_k per category. It is built with symbolic array operations (SymbolicUtils @arrayop/@makearray over array variables Nk(t)[1:I], Mk(t)[1:I]); the array ops are not in the .esm closed AST and the ESS Python runner does not evaluate them, so the model is scalarized to I=5 categories and 10 scalar differential states N1..N5, M1..M5. The scalarization evaluates the upstream @arrayop ifelse masks (i==1, i<=k-2, i<=k-1, i>=k+1) at concrete (k,i), so the flat equations are the source semantics, not a hand-derived rewrite. The five (six for Golovin) closure families are carried as algebraic states with explicit equations (rig convention; cf. components/aerosol/tomas.esm): xb_k (mean mass M_k/N_k), Z_k/Q_k/R_k (higher moments xi_pM^2/N, xi_p^2M^3/N^2, xi_p^3M^4/N^3), and f_k/psi_k/alpha_k (linear within-category reconstruction coefficients, Eq. 13+15). The upstream closures guard m/n divisions with ifelse(n>0,…); the .esm replaces each by the algebraically equivalent floored form mn/(n^2+1e-300) etc. — bit-identical to m/n for every n>0 that occurs (n>=1e-20 makes the 1e-300 floor ~260 orders below rounding), finite at n=0, and free of the ifelse-guarded divide-by-zero that the runner’s eager Piecewise lowering would otherwise hit. Kernel: Golovin (sum) kernel K(x,y)=C*(x+y). Verification: the scalarized RHS was checked (1) by a line-by-line transcription audit against the upstream @arrayop bodies; (2) against an independent literal double-sum implementation of the same @arrayop semantics (agreement < 1e-9 relative over random states); and (3) against first-principles no-overflow analytic identities — with the top category empty, no collision product exceeds the grid, so collection conserves number per collision and conserves mass exactly: dN_tot/dt = -(K0/2)N_tot^2 (constant kernel) and dN_tot/dt = -CM_tot*N_tot (Golovin kernel), with dM_tot/dt = 0. The scalarized RHS reproduces all three identities to machine precision (relative error 0). Inline-test expected values are a SciPy LSODA reference integration (rtol=1e-10, abstol=1e-14) of this verified RHS; the gate re-integrates the .esm with SciPy LSODA, and the model-level rel=2e-3 tolerance (as for tomas.esm) covers integrator-detail differences. This migration covers only collisional collection; the breakup, evaporation and sedimentation processes of the full 1989 paper are not implemented upstream either.

Variables

NameUnitsDefaultDescription
N1m^-31429670.6078643417Number concentration of cloud droplets in mass category 1 (of 5); lower mass boundary x_1 = 1.600000e-14 kg.
N2m^-32838836.0713738734Number concentration of cloud droplets in mass category 2 (of 5); lower mass boundary x_2 = 3.200000e-14 kg.
N3m^-35596563.981307812Number concentration of cloud droplets in mass category 3 (of 5); lower mass boundary x_3 = 6.400000e-14 kg.
N4m^-310875864.787608625Number concentration of cloud droplets in mass category 4 (of 5); lower mass boundary x_4 = 1.280000e-13 kg.
N5m^-320538015.50564386Number concentration of cloud droplets in mass category 5 (of 5); lower mass boundary x_5 = 2.560000e-13 kg.
M1kg*m^-33.430294470019302e-08Mass concentration of cloud droplets in mass category 1 (of 5).
M2kg*m^-31.3619145733423377e-07Mass concentration of cloud droplets in mass category 2 (of 5).
M3kg*m^-35.366970575748642e-07Mass concentration of cloud droplets in mass category 3 (of 5).
M4kg*m^-32.083711394480048e-06Mass concentration of cloud droplets in mass category 4 (of 5).
M5kg*m^-37.852951776977424e-06Mass concentration of cloud droplets in mass category 5 (of 5).

Parameters

NameUnitsDefaultDescription
XI_P11.0625Closure parameter xi_p (= 17/16) relating the higher-order moments Z_k, Q_k, R_k to N_k and M_k (Tzivion et al. 1989, Eq. 8a,b).
Cm^3/(kg*s)0.0015Golovin (sum) collection-kernel coefficient: K(x,y) = C*(x + y).

Observed

NameUnitsDefaultDescription
xb1kgMean droplet mass M_1/N_1 in category 1; algebraic. Denominator floored by 1e-300 so the closure stays finite for an empty category.
xb2kgMean droplet mass M_2/N_2 in category 2; algebraic. Denominator floored by 1e-300 so the closure stays finite for an empty category.
xb3kgMean droplet mass M_3/N_3 in category 3; algebraic. Denominator floored by 1e-300 so the closure stays finite for an empty category.
xb4kgMean droplet mass M_4/N_4 in category 4; algebraic. Denominator floored by 1e-300 so the closure stays finite for an empty category.
xb5kgMean droplet mass M_5/N_5 in category 5; algebraic. Denominator floored by 1e-300 so the closure stays finite for an empty category.
Z1kg^2*m^-3Second-moment closure quantity xi_p*M_1^2/N_1 for category 1; algebraic.
Z2kg^2*m^-3Second-moment closure quantity xi_p*M_2^2/N_2 for category 2; algebraic.
Z3kg^2*m^-3Second-moment closure quantity xi_p*M_3^2/N_3 for category 3; algebraic.
Z4kg^2*m^-3Second-moment closure quantity xi_p*M_4^2/N_4 for category 4; algebraic.
Z5kg^2*m^-3Second-moment closure quantity xi_p*M_5^2/N_5 for category 5; algebraic.
Q1kg^3*m^-3Third-moment closure quantity xi_p^2*M_1^3/N_1^2 for category 1; algebraic.
Q2kg^3*m^-3Third-moment closure quantity xi_p^2*M_2^3/N_2^2 for category 2; algebraic.
Q3kg^3*m^-3Third-moment closure quantity xi_p^2*M_3^3/N_3^2 for category 3; algebraic.
Q4kg^3*m^-3Third-moment closure quantity xi_p^2*M_4^3/N_4^2 for category 4; algebraic.
Q5kg^3*m^-3Third-moment closure quantity xi_p^2*M_5^3/N_5^2 for category 5; algebraic.
R1kg^4*m^-3Fourth-moment closure quantity xi_p^3*M_1^4/N_1^3 for category 1; algebraic (Golovin kernel only).
R2kg^4*m^-3Fourth-moment closure quantity xi_p^3*M_2^4/N_2^3 for category 2; algebraic (Golovin kernel only).
R3kg^4*m^-3Fourth-moment closure quantity xi_p^3*M_3^4/N_3^3 for category 3; algebraic (Golovin kernel only).
R4kg^4*m^-3Fourth-moment closure quantity xi_p^3*M_4^4/N_4^3 for category 4; algebraic (Golovin kernel only).
R5kg^4*m^-3Fourth-moment closure quantity xi_p^3*M_5^4/N_5^3 for category 5; algebraic (Golovin kernel only).
f1kg^-1*m^-3Linear within-category number-distribution coefficient f_1 (Eq. 13a) with the positivity constraint Eq. 15 applied; algebraic.
f2kg^-1*m^-3Linear within-category number-distribution coefficient f_2 (Eq. 13a) with the positivity constraint Eq. 15 applied; algebraic.
f3kg^-1*m^-3Linear within-category number-distribution coefficient f_3 (Eq. 13a) with the positivity constraint Eq. 15 applied; algebraic.
f4kg^-1*m^-3Linear within-category number-distribution coefficient f_4 (Eq. 13a) with the positivity constraint Eq. 15 applied; algebraic.
f5kg^-1*m^-3Linear within-category number-distribution coefficient f_5 (Eq. 13a) with the positivity constraint Eq. 15 applied; algebraic.
psi1kg^-1*m^-3Linear within-category number-distribution coefficient psi_1 (Eq. 13b) with the positivity constraint Eq. 15 applied; algebraic.
psi2kg^-1*m^-3Linear within-category number-distribution coefficient psi_2 (Eq. 13b) with the positivity constraint Eq. 15 applied; algebraic.
psi3kg^-1*m^-3Linear within-category number-distribution coefficient psi_3 (Eq. 13b) with the positivity constraint Eq. 15 applied; algebraic.
psi4kg^-1*m^-3Linear within-category number-distribution coefficient psi_4 (Eq. 13b) with the positivity constraint Eq. 15 applied; algebraic.
psi5kg^-1*m^-3Linear within-category number-distribution coefficient psi_5 (Eq. 13b) with the positivity constraint Eq. 15 applied; algebraic.
alpha1kg^-2*m^-3Within-category distribution slope (f_1 - psi_1)/(2 x_1) for category 1; algebraic.
alpha2kg^-2*m^-3Within-category distribution slope (f_2 - psi_2)/(2 x_2) for category 2; algebraic.
alpha3kg^-2*m^-3Within-category distribution slope (f_3 - psi_3)/(2 x_3) for category 3; algebraic.
alpha4kg^-2*m^-3Within-category distribution slope (f_4 - psi_4)/(2 x_4) for category 4; algebraic.
alpha5kg^-2*m^-3Within-category distribution slope (f_5 - psi_5)/(2 x_5) for category 5; algebraic.

Observed expressions

$$ xb1 = \frac{M1 \cdot N1}{N1^{2} + 1 \times 10^{-300}} $$

Mean droplet mass M_1/N_1 in category 1; algebraic. Denominator floored by 1e-300 so the closure stays finite for an empty category.

$$ xb2 = \frac{M2 \cdot N2}{N2^{2} + 1 \times 10^{-300}} $$

Mean droplet mass M_2/N_2 in category 2; algebraic. Denominator floored by 1e-300 so the closure stays finite for an empty category.

$$ xb3 = \frac{M3 \cdot N3}{N3^{2} + 1 \times 10^{-300}} $$

Mean droplet mass M_3/N_3 in category 3; algebraic. Denominator floored by 1e-300 so the closure stays finite for an empty category.

$$ xb4 = \frac{M4 \cdot N4}{N4^{2} + 1 \times 10^{-300}} $$

Mean droplet mass M_4/N_4 in category 4; algebraic. Denominator floored by 1e-300 so the closure stays finite for an empty category.

$$ xb5 = \frac{M5 \cdot N5}{N5^{2} + 1 \times 10^{-300}} $$

Mean droplet mass M_5/N_5 in category 5; algebraic. Denominator floored by 1e-300 so the closure stays finite for an empty category.

$$ Z1 = \frac{XI_{P} \cdot M1^{2} \cdot N1}{N1^{2} + 1 \times 10^{-300}} $$

Second-moment closure quantity xi_p*M_1^2/N_1 for category 1; algebraic.

$$ Z2 = \frac{XI_{P} \cdot M2^{2} \cdot N2}{N2^{2} + 1 \times 10^{-300}} $$

Second-moment closure quantity xi_p*M_2^2/N_2 for category 2; algebraic.

$$ Z3 = \frac{XI_{P} \cdot M3^{2} \cdot N3}{N3^{2} + 1 \times 10^{-300}} $$

Second-moment closure quantity xi_p*M_3^2/N_3 for category 3; algebraic.

$$ Z4 = \frac{XI_{P} \cdot M4^{2} \cdot N4}{N4^{2} + 1 \times 10^{-300}} $$

Second-moment closure quantity xi_p*M_4^2/N_4 for category 4; algebraic.

$$ Z5 = \frac{XI_{P} \cdot M5^{2} \cdot N5}{N5^{2} + 1 \times 10^{-300}} $$

Second-moment closure quantity xi_p*M_5^2/N_5 for category 5; algebraic.

$$ Q1 = \frac{XI_{P}^{2} \cdot M1^{3} \cdot N1^{2}}{N1^{4} + 1 \times 10^{-300}} $$

Third-moment closure quantity xi_p^2*M_1^3/N_1^2 for category 1; algebraic.

$$ Q2 = \frac{XI_{P}^{2} \cdot M2^{3} \cdot N2^{2}}{N2^{4} + 1 \times 10^{-300}} $$

Third-moment closure quantity xi_p^2*M_2^3/N_2^2 for category 2; algebraic.

$$ Q3 = \frac{XI_{P}^{2} \cdot M3^{3} \cdot N3^{2}}{N3^{4} + 1 \times 10^{-300}} $$

Third-moment closure quantity xi_p^2*M_3^3/N_3^2 for category 3; algebraic.

$$ Q4 = \frac{XI_{P}^{2} \cdot M4^{3} \cdot N4^{2}}{N4^{4} + 1 \times 10^{-300}} $$

Third-moment closure quantity xi_p^2*M_4^3/N_4^2 for category 4; algebraic.

$$ Q5 = \frac{XI_{P}^{2} \cdot M5^{3} \cdot N5^{2}}{N5^{4} + 1 \times 10^{-300}} $$

Third-moment closure quantity xi_p^2*M_5^3/N_5^2 for category 5; algebraic.

$$ R1 = \frac{XI_{P}^{3} \cdot M1^{4} \cdot N1^{3}}{N1^{6} + 1 \times 10^{-300}} $$

Fourth-moment closure quantity xi_p^3*M_1^4/N_1^3 for category 1; algebraic (Golovin kernel only).

$$ R2 = \frac{XI_{P}^{3} \cdot M2^{4} \cdot N2^{3}}{N2^{6} + 1 \times 10^{-300}} $$

Fourth-moment closure quantity xi_p^3*M_2^4/N_2^3 for category 2; algebraic (Golovin kernel only).

$$ R3 = \frac{XI_{P}^{3} \cdot M3^{4} \cdot N3^{3}}{N3^{6} + 1 \times 10^{-300}} $$

Fourth-moment closure quantity xi_p^3*M_3^4/N_3^3 for category 3; algebraic (Golovin kernel only).

$$ R4 = \frac{XI_{P}^{3} \cdot M4^{4} \cdot N4^{3}}{N4^{6} + 1 \times 10^{-300}} $$

Fourth-moment closure quantity xi_p^3*M_4^4/N_4^3 for category 4; algebraic (Golovin kernel only).

$$ R5 = \frac{XI_{P}^{3} \cdot M5^{4} \cdot N5^{3}}{N5^{6} + 1 \times 10^{-300}} $$

Fourth-moment closure quantity xi_p^3*M_5^4/N_5^3 for category 5; algebraic (Golovin kernel only).

$$ f1 = \mathrm{ifelse}\left(\mathrm{<}\left(xb1, 1.6 \times 10^{-14}\right), 0.0, \mathrm{ifelse}\left(\mathrm{>}\left(xb1, 3.2 \times 10^{-14}\right), \frac{2.0 \cdot N1}{1.6 \times 10^{-14}}, \frac{4.0 \cdot N1}{1.6 \times 10^{-14}} - \frac{2.0 \cdot M1}{2.56 \times 10^{-28}}\right)\right) $$

Linear within-category number-distribution coefficient f_1 (Eq. 13a) with the positivity constraint Eq. 15 applied; algebraic.

$$ f2 = \mathrm{ifelse}\left(\mathrm{<}\left(xb2, 3.2 \times 10^{-14}\right), 0.0, \mathrm{ifelse}\left(\mathrm{>}\left(xb2, 6.4 \times 10^{-14}\right), \frac{2.0 \cdot N2}{3.2 \times 10^{-14}}, \frac{4.0 \cdot N2}{3.2 \times 10^{-14}} - \frac{2.0 \cdot M2}{1.024 \times 10^{-27}}\right)\right) $$

Linear within-category number-distribution coefficient f_2 (Eq. 13a) with the positivity constraint Eq. 15 applied; algebraic.

$$ f3 = \mathrm{ifelse}\left(\mathrm{<}\left(xb3, 6.4 \times 10^{-14}\right), 0.0, \mathrm{ifelse}\left(\mathrm{>}\left(xb3, 1.28 \times 10^{-13}\right), \frac{2.0 \cdot N3}{6.4 \times 10^{-14}}, \frac{4.0 \cdot N3}{6.4 \times 10^{-14}} - \frac{2.0 \cdot M3}{4.096 \times 10^{-27}}\right)\right) $$

Linear within-category number-distribution coefficient f_3 (Eq. 13a) with the positivity constraint Eq. 15 applied; algebraic.

$$ f4 = \mathrm{ifelse}\left(\mathrm{<}\left(xb4, 1.28 \times 10^{-13}\right), 0.0, \mathrm{ifelse}\left(\mathrm{>}\left(xb4, 2.56 \times 10^{-13}\right), \frac{2.0 \cdot N4}{1.28 \times 10^{-13}}, \frac{4.0 \cdot N4}{1.28 \times 10^{-13}} - \frac{2.0 \cdot M4}{1.6384 \times 10^{-26}}\right)\right) $$

Linear within-category number-distribution coefficient f_4 (Eq. 13a) with the positivity constraint Eq. 15 applied; algebraic.

$$ f5 = \mathrm{ifelse}\left(\mathrm{<}\left(xb5, 2.56 \times 10^{-13}\right), 0.0, \mathrm{ifelse}\left(\mathrm{>}\left(xb5, 5.12 \times 10^{-13}\right), \frac{2.0 \cdot N5}{2.56 \times 10^{-13}}, \frac{4.0 \cdot N5}{2.56 \times 10^{-13}} - \frac{2.0 \cdot M5}{6.5536 \times 10^{-26}}\right)\right) $$

Linear within-category number-distribution coefficient f_5 (Eq. 13a) with the positivity constraint Eq. 15 applied; algebraic.

$$ psi1 = \mathrm{ifelse}\left(\mathrm{<}\left(xb1, 1.6 \times 10^{-14}\right), \frac{2.0 \cdot N1}{1.6 \times 10^{-14}}, \mathrm{ifelse}\left(\mathrm{>}\left(xb1, 3.2 \times 10^{-14}\right), 0.0, \frac{2.0 \cdot M1}{2.56 \times 10^{-28}} - \frac{2.0 \cdot N1}{1.6 \times 10^{-14}}\right)\right) $$

Linear within-category number-distribution coefficient psi_1 (Eq. 13b) with the positivity constraint Eq. 15 applied; algebraic.

$$ psi2 = \mathrm{ifelse}\left(\mathrm{<}\left(xb2, 3.2 \times 10^{-14}\right), \frac{2.0 \cdot N2}{3.2 \times 10^{-14}}, \mathrm{ifelse}\left(\mathrm{>}\left(xb2, 6.4 \times 10^{-14}\right), 0.0, \frac{2.0 \cdot M2}{1.024 \times 10^{-27}} - \frac{2.0 \cdot N2}{3.2 \times 10^{-14}}\right)\right) $$

Linear within-category number-distribution coefficient psi_2 (Eq. 13b) with the positivity constraint Eq. 15 applied; algebraic.

$$ psi3 = \mathrm{ifelse}\left(\mathrm{<}\left(xb3, 6.4 \times 10^{-14}\right), \frac{2.0 \cdot N3}{6.4 \times 10^{-14}}, \mathrm{ifelse}\left(\mathrm{>}\left(xb3, 1.28 \times 10^{-13}\right), 0.0, \frac{2.0 \cdot M3}{4.096 \times 10^{-27}} - \frac{2.0 \cdot N3}{6.4 \times 10^{-14}}\right)\right) $$

Linear within-category number-distribution coefficient psi_3 (Eq. 13b) with the positivity constraint Eq. 15 applied; algebraic.

$$ psi4 = \mathrm{ifelse}\left(\mathrm{<}\left(xb4, 1.28 \times 10^{-13}\right), \frac{2.0 \cdot N4}{1.28 \times 10^{-13}}, \mathrm{ifelse}\left(\mathrm{>}\left(xb4, 2.56 \times 10^{-13}\right), 0.0, \frac{2.0 \cdot M4}{1.6384 \times 10^{-26}} - \frac{2.0 \cdot N4}{1.28 \times 10^{-13}}\right)\right) $$

Linear within-category number-distribution coefficient psi_4 (Eq. 13b) with the positivity constraint Eq. 15 applied; algebraic.

$$ psi5 = \mathrm{ifelse}\left(\mathrm{<}\left(xb5, 2.56 \times 10^{-13}\right), \frac{2.0 \cdot N5}{2.56 \times 10^{-13}}, \mathrm{ifelse}\left(\mathrm{>}\left(xb5, 5.12 \times 10^{-13}\right), 0.0, \frac{2.0 \cdot M5}{6.5536 \times 10^{-26}} - \frac{2.0 \cdot N5}{2.56 \times 10^{-13}}\right)\right) $$

Linear within-category number-distribution coefficient psi_5 (Eq. 13b) with the positivity constraint Eq. 15 applied; algebraic.

$$ alpha1 = \frac{f1 - psi1}{3.2 \times 10^{-14}} $$

Within-category distribution slope (f_1 - psi_1)/(2 x_1) for category 1; algebraic.

$$ alpha2 = \frac{f2 - psi2}{6.4 \times 10^{-14}} $$

Within-category distribution slope (f_2 - psi_2)/(2 x_2) for category 2; algebraic.

$$ alpha3 = \frac{f3 - psi3}{1.28 \times 10^{-13}} $$

Within-category distribution slope (f_3 - psi_3)/(2 x_3) for category 3; algebraic.

$$ alpha4 = \frac{f4 - psi4}{2.56 \times 10^{-13}} $$

Within-category distribution slope (f_4 - psi_4)/(2 x_4) for category 4; algebraic.

$$ alpha5 = \frac{f5 - psi5}{5.12 \times 10^{-13}} $$

Within-category distribution slope (f_5 - psi_5)/(2 x_5) for category 5; algebraic.

Equations

$$ \mathrm{D}\left(N1\right) = \left(-C\right) \cdot 2.0 \cdot N1 \cdot M1 + \left(-C\right) \cdot \left(M1 \cdot N2 + N1 \cdot M2\right) + \left(-C\right) \cdot \left(M1 \cdot N3 + N1 \cdot M3\right) + \left(-C\right) \cdot \left(M1 \cdot N4 + N1 \cdot M4\right) + \left(-C\right) \cdot \left(M1 \cdot N5 + N1 \cdot M5\right) $$ $$ \mathrm{D}\left(N2\right) = C \cdot N1 \cdot M1 + \left(-C\right) \cdot 2.0 \cdot N2 \cdot M2 + \left(-C\right) \cdot \left(6.4 \times 10^{-14} \cdot psi2 \cdot M1 + 0.5 \cdot f2 \cdot Z1 + alpha2 \cdot Q1\right) + \left(-C\right) \cdot \left(M2 \cdot N3 + N2 \cdot M3\right) + \left(-C\right) \cdot \left(M2 \cdot N4 + N2 \cdot M4\right) + \left(-C\right) \cdot \left(M2 \cdot N5 + N2 \cdot M5\right) $$ $$ \mathrm{D}\left(N3\right) = C \cdot N2 \cdot M2 + \left(-C\right) \cdot 2.0 \cdot N3 \cdot M3 + C \cdot \left(6.4 \times 10^{-14} \cdot psi2 \cdot M1 + 0.5 \cdot f2 \cdot Z1 + alpha2 \cdot Q1\right) + \left(-C\right) \cdot \left(1.28 \times 10^{-13} \cdot psi3 \cdot M1 + 0.5 \cdot f3 \cdot Z1 + alpha3 \cdot Q1\right) + \left(-C\right) \cdot \left(1.28 \times 10^{-13} \cdot psi3 \cdot M2 + 0.5 \cdot f3 \cdot Z2 + alpha3 \cdot Q2\right) + \left(-C\right) \cdot \left(M3 \cdot N4 + N3 \cdot M4\right) + \left(-C\right) \cdot \left(M3 \cdot N5 + N3 \cdot M5\right) $$ $$ \mathrm{D}\left(N4\right) = C \cdot N3 \cdot M3 + \left(-C\right) \cdot 2.0 \cdot N4 \cdot M4 + C \cdot \left(1.28 \times 10^{-13} \cdot psi3 \cdot M1 + 0.5 \cdot f3 \cdot Z1 + alpha3 \cdot Q1\right) + C \cdot \left(1.28 \times 10^{-13} \cdot psi3 \cdot M2 + 0.5 \cdot f3 \cdot Z2 + alpha3 \cdot Q2\right) + \left(-C\right) \cdot \left(2.56 \times 10^{-13} \cdot psi4 \cdot M1 + 0.5 \cdot f4 \cdot Z1 + alpha4 \cdot Q1\right) + \left(-C\right) \cdot \left(2.56 \times 10^{-13} \cdot psi4 \cdot M2 + 0.5 \cdot f4 \cdot Z2 + alpha4 \cdot Q2\right) + \left(-C\right) \cdot \left(2.56 \times 10^{-13} \cdot psi4 \cdot M3 + 0.5 \cdot f4 \cdot Z3 + alpha4 \cdot Q3\right) + \left(-C\right) \cdot \left(M4 \cdot N5 + N4 \cdot M5\right) $$ $$ \mathrm{D}\left(N5\right) = C \cdot N4 \cdot M4 + \left(-C\right) \cdot 2.0 \cdot N5 \cdot M5 + C \cdot \left(2.56 \times 10^{-13} \cdot psi4 \cdot M1 + 0.5 \cdot f4 \cdot Z1 + alpha4 \cdot Q1\right) + C \cdot \left(2.56 \times 10^{-13} \cdot psi4 \cdot M2 + 0.5 \cdot f4 \cdot Z2 + alpha4 \cdot Q2\right) + C \cdot \left(2.56 \times 10^{-13} \cdot psi4 \cdot M3 + 0.5 \cdot f4 \cdot Z3 + alpha4 \cdot Q3\right) + \left(-C\right) \cdot \left(5.12 \times 10^{-13} \cdot psi5 \cdot M1 + 0.5 \cdot f5 \cdot Z1 + alpha5 \cdot Q1\right) + \left(-C\right) \cdot \left(5.12 \times 10^{-13} \cdot psi5 \cdot M2 + 0.5 \cdot f5 \cdot Z2 + alpha5 \cdot Q2\right) + \left(-C\right) \cdot \left(5.12 \times 10^{-13} \cdot psi5 \cdot M3 + 0.5 \cdot f5 \cdot Z3 + alpha5 \cdot Q3\right) + \left(-C\right) \cdot \left(5.12 \times 10^{-13} \cdot psi5 \cdot M4 + 0.5 \cdot f5 \cdot Z4 + alpha5 \cdot Q4\right) $$ $$ \mathrm{D}\left(M1\right) = \left(-C\right) \cdot \left(N1 \cdot Z1 + M1^{2}\right) + \left(-C\right) \cdot \left(Z1 \cdot N2 + M1 \cdot M2\right) + \left(-C\right) \cdot \left(Z1 \cdot N3 + M1 \cdot M3\right) + \left(-C\right) \cdot \left(Z1 \cdot N4 + M1 \cdot M4\right) + \left(-C\right) \cdot \left(Z1 \cdot N5 + M1 \cdot M5\right) $$ $$ \mathrm{D}\left(M2\right) = C \cdot \left(N1 \cdot Z1 + M1^{2}\right) + \left(-C\right) \cdot \left(N2 \cdot Z2 + M2^{2}\right) + \left(-C\right) \cdot \left(4.096 \times 10^{-27} \cdot psi2 \cdot M1 + 3.2 \times 10^{-14} \cdot \left(0.5 \cdot f2 + 2.0 \cdot psi2\right) \cdot Z1 + \left(f2 - psi2\right) \cdot Q1 + alpha2 \cdot R1\right) + C \cdot M2 \cdot M1 + C \cdot N2 \cdot Z1 + \left(-C\right) \cdot \left(Z2 \cdot N3 + M2 \cdot M3\right) + \left(-C\right) \cdot \left(Z2 \cdot N4 + M2 \cdot M4\right) + \left(-C\right) \cdot \left(Z2 \cdot N5 + M2 \cdot M5\right) $$ $$ \mathrm{D}\left(M3\right) = C \cdot \left(N2 \cdot Z2 + M2^{2}\right) + \left(-C\right) \cdot \left(N3 \cdot Z3 + M3^{2}\right) + C \cdot \left(4.096 \times 10^{-27} \cdot psi2 \cdot M1 + 3.2 \times 10^{-14} \cdot \left(0.5 \cdot f2 + 2.0 \cdot psi2\right) \cdot Z1 + \left(f2 - psi2\right) \cdot Q1 + alpha2 \cdot R1\right) + \left(-C\right) \cdot \left(1.6384 \times 10^{-26} \cdot psi3 \cdot M1 + 6.4 \times 10^{-14} \cdot \left(0.5 \cdot f3 + 2.0 \cdot psi3\right) \cdot Z1 + \left(f3 - psi3\right) \cdot Q1 + alpha3 \cdot R1\right) + C \cdot M3 \cdot M1 + C \cdot N3 \cdot Z1 + \left(-C\right) \cdot \left(1.6384 \times 10^{-26} \cdot psi3 \cdot M2 + 6.4 \times 10^{-14} \cdot \left(0.5 \cdot f3 + 2.0 \cdot psi3\right) \cdot Z2 + \left(f3 - psi3\right) \cdot Q2 + alpha3 \cdot R2\right) + C \cdot M3 \cdot M2 + C \cdot N3 \cdot Z2 + \left(-C\right) \cdot \left(Z3 \cdot N4 + M3 \cdot M4\right) + \left(-C\right) \cdot \left(Z3 \cdot N5 + M3 \cdot M5\right) $$ $$ \mathrm{D}\left(M4\right) = C \cdot \left(N3 \cdot Z3 + M3^{2}\right) + \left(-C\right) \cdot \left(N4 \cdot Z4 + M4^{2}\right) + C \cdot \left(1.6384 \times 10^{-26} \cdot psi3 \cdot M1 + 6.4 \times 10^{-14} \cdot \left(0.5 \cdot f3 + 2.0 \cdot psi3\right) \cdot Z1 + \left(f3 - psi3\right) \cdot Q1 + alpha3 \cdot R1\right) + C \cdot \left(1.6384 \times 10^{-26} \cdot psi3 \cdot M2 + 6.4 \times 10^{-14} \cdot \left(0.5 \cdot f3 + 2.0 \cdot psi3\right) \cdot Z2 + \left(f3 - psi3\right) \cdot Q2 + alpha3 \cdot R2\right) + \left(-C\right) \cdot \left(6.5536 \times 10^{-26} \cdot psi4 \cdot M1 + 1.28 \times 10^{-13} \cdot \left(0.5 \cdot f4 + 2.0 \cdot psi4\right) \cdot Z1 + \left(f4 - psi4\right) \cdot Q1 + alpha4 \cdot R1\right) + C \cdot M4 \cdot M1 + C \cdot N4 \cdot Z1 + \left(-C\right) \cdot \left(6.5536 \times 10^{-26} \cdot psi4 \cdot M2 + 1.28 \times 10^{-13} \cdot \left(0.5 \cdot f4 + 2.0 \cdot psi4\right) \cdot Z2 + \left(f4 - psi4\right) \cdot Q2 + alpha4 \cdot R2\right) + C \cdot M4 \cdot M2 + C \cdot N4 \cdot Z2 + \left(-C\right) \cdot \left(6.5536 \times 10^{-26} \cdot psi4 \cdot M3 + 1.28 \times 10^{-13} \cdot \left(0.5 \cdot f4 + 2.0 \cdot psi4\right) \cdot Z3 + \left(f4 - psi4\right) \cdot Q3 + alpha4 \cdot R3\right) + C \cdot M4 \cdot M3 + C \cdot N4 \cdot Z3 + \left(-C\right) \cdot \left(Z4 \cdot N5 + M4 \cdot M5\right) $$ $$ \mathrm{D}\left(M5\right) = C \cdot \left(N4 \cdot Z4 + M4^{2}\right) + \left(-C\right) \cdot \left(N5 \cdot Z5 + M5^{2}\right) + C \cdot \left(6.5536 \times 10^{-26} \cdot psi4 \cdot M1 + 1.28 \times 10^{-13} \cdot \left(0.5 \cdot f4 + 2.0 \cdot psi4\right) \cdot Z1 + \left(f4 - psi4\right) \cdot Q1 + alpha4 \cdot R1\right) + C \cdot \left(6.5536 \times 10^{-26} \cdot psi4 \cdot M2 + 1.28 \times 10^{-13} \cdot \left(0.5 \cdot f4 + 2.0 \cdot psi4\right) \cdot Z2 + \left(f4 - psi4\right) \cdot Q2 + alpha4 \cdot R2\right) + C \cdot \left(6.5536 \times 10^{-26} \cdot psi4 \cdot M3 + 1.28 \times 10^{-13} \cdot \left(0.5 \cdot f4 + 2.0 \cdot psi4\right) \cdot Z3 + \left(f4 - psi4\right) \cdot Q3 + alpha4 \cdot R3\right) + \left(-C\right) \cdot \left(2.62144 \times 10^{-25} \cdot psi5 \cdot M1 + 2.56 \times 10^{-13} \cdot \left(0.5 \cdot f5 + 2.0 \cdot psi5\right) \cdot Z1 + \left(f5 - psi5\right) \cdot Q1 + alpha5 \cdot R1\right) + C \cdot M5 \cdot M1 + C \cdot N5 \cdot Z1 + \left(-C\right) \cdot \left(2.62144 \times 10^{-25} \cdot psi5 \cdot M2 + 2.56 \times 10^{-13} \cdot \left(0.5 \cdot f5 + 2.0 \cdot psi5\right) \cdot Z2 + \left(f5 - psi5\right) \cdot Q2 + alpha5 \cdot R2\right) + C \cdot M5 \cdot M2 + C \cdot N5 \cdot Z2 + \left(-C\right) \cdot \left(2.62144 \times 10^{-25} \cdot psi5 \cdot M3 + 2.56 \times 10^{-13} \cdot \left(0.5 \cdot f5 + 2.0 \cdot psi5\right) \cdot Z3 + \left(f5 - psi5\right) \cdot Q3 + alpha5 \cdot R3\right) + C \cdot M5 \cdot M3 + C \cdot N5 \cdot Z3 + \left(-C\right) \cdot \left(2.62144 \times 10^{-25} \cdot psi5 \cdot M4 + 2.56 \times 10^{-13} \cdot \left(0.5 \cdot f5 + 2.0 \cdot psi5\right) \cdot Z4 + \left(f5 - psi5\right) \cdot Q4 + alpha5 \cdot R4\right) + C \cdot M5 \cdot M4 + C \cdot N5 \cdot Z4 $$

Analyses

exponential_ic_evolution_golovin

Evolution of the droplet number and mass spectra under the golovin collection kernel, started from an exponential initial distribution. Number concentration decreases as droplets coalesce; mass shifts toward larger categories.

Time span: 0.0 → 20000000.0

Number concentration N_k(t) for each of the 5 mass categories.

Mass concentration M_k(t) for each of the 5 mass categories.

Raw .esm

Raw .esm JSON (this component)
{
  "reference": {
    "doi": "10.1175/1520-0469(1989)046<3312:TEORSP>2.0.CO;2",
    "citation": "Tzivion, S., Feingold, G., and Levin, Z.: The Evolution of Raindrop Spectra. Part II: Collisional Collection/Breakup and Evaporation in a Rainshaft, J. Atmos. Sci., 46(21), 3312-3327, 1989.",
    "url": "https://doi.org/10.1175/1520-0469(1989)046%3C3312:TEORSP%3E2.0.CO;2",
    "notes": "Source: Aerosol.jl src/stochastic_collection.jl @ c8c640bb636b22f2425460e9ed5cba50793bfee1 (migration bead esm-ar1e); the upstream @component StochasticCollectionCoalescence with kernel_type=golovin. The upstream model solves the two-moment stochastic collection equation (SCE) for cloud-droplet coalescence (Tzivion et al. 1989) over I mass-doubling categories, tracking number N_k and mass M_k per category. It is built with symbolic array operations (SymbolicUtils @arrayop/@makearray over array variables Nk(t)[1:I], Mk(t)[1:I]); the array ops are not in the .esm closed AST and the ESS Python runner does not evaluate them, so the model is scalarized to I=5 categories and 10 scalar differential states N1..N5, M1..M5. The scalarization evaluates the upstream @arrayop ifelse masks (i==1, i<=k-2, i<=k-1, i>=k+1) at concrete (k,i), so the flat equations are the source semantics, not a hand-derived rewrite. The five (six for Golovin) closure families are carried as algebraic states with explicit equations (rig convention; cf. components/aerosol/tomas.esm): xb_k (mean mass M_k/N_k), Z_k/Q_k/R_k (higher moments xi_p*M^2/N, xi_p^2*M^3/N^2, xi_p^3*M^4/N^3), and f_k/psi_k/alpha_k (linear within-category reconstruction coefficients, Eq. 13+15). The upstream closures guard m/n divisions with ifelse(n>0,...); the .esm replaces each by the algebraically equivalent floored form m*n/(n^2+1e-300) etc. — bit-identical to m/n for every n>0 that occurs (n>=1e-20 makes the 1e-300 floor ~260 orders below rounding), finite at n=0, and free of the ifelse-guarded divide-by-zero that the runner's eager Piecewise lowering would otherwise hit. Kernel: Golovin (sum) kernel K(x,y)=C*(x+y). Verification: the scalarized RHS was checked (1) by a line-by-line transcription audit against the upstream @arrayop bodies; (2) against an independent literal double-sum implementation of the same @arrayop semantics (agreement < 1e-9 relative over random states); and (3) against first-principles no-overflow analytic identities — with the top category empty, no collision product exceeds the grid, so collection conserves number per collision and conserves mass exactly: dN_tot/dt = -(K0/2)*N_tot^2 (constant kernel) and dN_tot/dt = -C*M_tot*N_tot (Golovin kernel), with dM_tot/dt = 0. The scalarized RHS reproduces all three identities to machine precision (relative error 0). Inline-test expected values are a SciPy LSODA reference integration (rtol=1e-10, abstol=1e-14) of this verified RHS; the gate re-integrates the .esm with SciPy LSODA, and the model-level rel=2e-3 tolerance (as for tomas.esm) covers integrator-detail differences. This migration covers only collisional collection; the breakup, evaporation and sedimentation processes of the full 1989 paper are not implemented upstream either."
  },
  "tolerance": {
    "rel": 0.002
  },
  "variables": {
    "N1": {
      "type": "unknown",
      "units": "m^-3",
      "default": 1429670.6078643417,
      "description": "Number concentration of cloud droplets in mass category 1 (of 5); lower mass boundary x_1 = 1.600000e-14 kg."
    },
    "N2": {
      "type": "unknown",
      "units": "m^-3",
      "default": 2838836.0713738734,
      "description": "Number concentration of cloud droplets in mass category 2 (of 5); lower mass boundary x_2 = 3.200000e-14 kg."
    },
    "N3": {
      "type": "unknown",
      "units": "m^-3",
      "default": 5596563.981307812,
      "description": "Number concentration of cloud droplets in mass category 3 (of 5); lower mass boundary x_3 = 6.400000e-14 kg."
    },
    "N4": {
      "type": "unknown",
      "units": "m^-3",
      "default": 10875864.787608625,
      "description": "Number concentration of cloud droplets in mass category 4 (of 5); lower mass boundary x_4 = 1.280000e-13 kg."
    },
    "N5": {
      "type": "unknown",
      "units": "m^-3",
      "default": 20538015.50564386,
      "description": "Number concentration of cloud droplets in mass category 5 (of 5); lower mass boundary x_5 = 2.560000e-13 kg."
    },
    "M1": {
      "type": "unknown",
      "units": "kg*m^-3",
      "default": 3.430294470019302e-08,
      "description": "Mass concentration of cloud droplets in mass category 1 (of 5)."
    },
    "M2": {
      "type": "unknown",
      "units": "kg*m^-3",
      "default": 1.3619145733423377e-07,
      "description": "Mass concentration of cloud droplets in mass category 2 (of 5)."
    },
    "M3": {
      "type": "unknown",
      "units": "kg*m^-3",
      "default": 5.366970575748642e-07,
      "description": "Mass concentration of cloud droplets in mass category 3 (of 5)."
    },
    "M4": {
      "type": "unknown",
      "units": "kg*m^-3",
      "default": 2.083711394480048e-06,
      "description": "Mass concentration of cloud droplets in mass category 4 (of 5)."
    },
    "M5": {
      "type": "unknown",
      "units": "kg*m^-3",
      "default": 7.852951776977424e-06,
      "description": "Mass concentration of cloud droplets in mass category 5 (of 5)."
    },
    "XI_P": {
      "type": "parameter",
      "units": "1",
      "default": 1.0625,
      "description": "Closure parameter xi_p (= 17/16) relating the higher-order moments Z_k, Q_k, R_k to N_k and M_k (Tzivion et al. 1989, Eq. 8a,b)."
    },
    "C": {
      "type": "parameter",
      "units": "m^3/(kg*s)",
      "default": 0.0015,
      "description": "Golovin (sum) collection-kernel coefficient: K(x,y) = C*(x + y)."
    },
    "xb1": {
      "type": "unknown",
      "units": "kg",
      "description": "Mean droplet mass M_1/N_1 in category 1; algebraic. Denominator floored by 1e-300 so the closure stays finite for an empty category."
    },
    "xb2": {
      "type": "unknown",
      "units": "kg",
      "description": "Mean droplet mass M_2/N_2 in category 2; algebraic. Denominator floored by 1e-300 so the closure stays finite for an empty category."
    },
    "xb3": {
      "type": "unknown",
      "units": "kg",
      "description": "Mean droplet mass M_3/N_3 in category 3; algebraic. Denominator floored by 1e-300 so the closure stays finite for an empty category."
    },
    "xb4": {
      "type": "unknown",
      "units": "kg",
      "description": "Mean droplet mass M_4/N_4 in category 4; algebraic. Denominator floored by 1e-300 so the closure stays finite for an empty category."
    },
    "xb5": {
      "type": "unknown",
      "units": "kg",
      "description": "Mean droplet mass M_5/N_5 in category 5; algebraic. Denominator floored by 1e-300 so the closure stays finite for an empty category."
    },
    "Z1": {
      "type": "unknown",
      "units": "kg^2*m^-3",
      "description": "Second-moment closure quantity xi_p*M_1^2/N_1 for category 1; algebraic."
    },
    "Z2": {
      "type": "unknown",
      "units": "kg^2*m^-3",
      "description": "Second-moment closure quantity xi_p*M_2^2/N_2 for category 2; algebraic."
    },
    "Z3": {
      "type": "unknown",
      "units": "kg^2*m^-3",
      "description": "Second-moment closure quantity xi_p*M_3^2/N_3 for category 3; algebraic."
    },
    "Z4": {
      "type": "unknown",
      "units": "kg^2*m^-3",
      "description": "Second-moment closure quantity xi_p*M_4^2/N_4 for category 4; algebraic."
    },
    "Z5": {
      "type": "unknown",
      "units": "kg^2*m^-3",
      "description": "Second-moment closure quantity xi_p*M_5^2/N_5 for category 5; algebraic."
    },
    "Q1": {
      "type": "unknown",
      "units": "kg^3*m^-3",
      "description": "Third-moment closure quantity xi_p^2*M_1^3/N_1^2 for category 1; algebraic."
    },
    "Q2": {
      "type": "unknown",
      "units": "kg^3*m^-3",
      "description": "Third-moment closure quantity xi_p^2*M_2^3/N_2^2 for category 2; algebraic."
    },
    "Q3": {
      "type": "unknown",
      "units": "kg^3*m^-3",
      "description": "Third-moment closure quantity xi_p^2*M_3^3/N_3^2 for category 3; algebraic."
    },
    "Q4": {
      "type": "unknown",
      "units": "kg^3*m^-3",
      "description": "Third-moment closure quantity xi_p^2*M_4^3/N_4^2 for category 4; algebraic."
    },
    "Q5": {
      "type": "unknown",
      "units": "kg^3*m^-3",
      "description": "Third-moment closure quantity xi_p^2*M_5^3/N_5^2 for category 5; algebraic."
    },
    "R1": {
      "type": "unknown",
      "units": "kg^4*m^-3",
      "description": "Fourth-moment closure quantity xi_p^3*M_1^4/N_1^3 for category 1; algebraic (Golovin kernel only)."
    },
    "R2": {
      "type": "unknown",
      "units": "kg^4*m^-3",
      "description": "Fourth-moment closure quantity xi_p^3*M_2^4/N_2^3 for category 2; algebraic (Golovin kernel only)."
    },
    "R3": {
      "type": "unknown",
      "units": "kg^4*m^-3",
      "description": "Fourth-moment closure quantity xi_p^3*M_3^4/N_3^3 for category 3; algebraic (Golovin kernel only)."
    },
    "R4": {
      "type": "unknown",
      "units": "kg^4*m^-3",
      "description": "Fourth-moment closure quantity xi_p^3*M_4^4/N_4^3 for category 4; algebraic (Golovin kernel only)."
    },
    "R5": {
      "type": "unknown",
      "units": "kg^4*m^-3",
      "description": "Fourth-moment closure quantity xi_p^3*M_5^4/N_5^3 for category 5; algebraic (Golovin kernel only)."
    },
    "f1": {
      "type": "unknown",
      "units": "kg^-1*m^-3",
      "description": "Linear within-category number-distribution coefficient f_1 (Eq. 13a) with the positivity constraint Eq. 15 applied; algebraic."
    },
    "f2": {
      "type": "unknown",
      "units": "kg^-1*m^-3",
      "description": "Linear within-category number-distribution coefficient f_2 (Eq. 13a) with the positivity constraint Eq. 15 applied; algebraic."
    },
    "f3": {
      "type": "unknown",
      "units": "kg^-1*m^-3",
      "description": "Linear within-category number-distribution coefficient f_3 (Eq. 13a) with the positivity constraint Eq. 15 applied; algebraic."
    },
    "f4": {
      "type": "unknown",
      "units": "kg^-1*m^-3",
      "description": "Linear within-category number-distribution coefficient f_4 (Eq. 13a) with the positivity constraint Eq. 15 applied; algebraic."
    },
    "f5": {
      "type": "unknown",
      "units": "kg^-1*m^-3",
      "description": "Linear within-category number-distribution coefficient f_5 (Eq. 13a) with the positivity constraint Eq. 15 applied; algebraic."
    },
    "psi1": {
      "type": "unknown",
      "units": "kg^-1*m^-3",
      "description": "Linear within-category number-distribution coefficient psi_1 (Eq. 13b) with the positivity constraint Eq. 15 applied; algebraic."
    },
    "psi2": {
      "type": "unknown",
      "units": "kg^-1*m^-3",
      "description": "Linear within-category number-distribution coefficient psi_2 (Eq. 13b) with the positivity constraint Eq. 15 applied; algebraic."
    },
    "psi3": {
      "type": "unknown",
      "units": "kg^-1*m^-3",
      "description": "Linear within-category number-distribution coefficient psi_3 (Eq. 13b) with the positivity constraint Eq. 15 applied; algebraic."
    },
    "psi4": {
      "type": "unknown",
      "units": "kg^-1*m^-3",
      "description": "Linear within-category number-distribution coefficient psi_4 (Eq. 13b) with the positivity constraint Eq. 15 applied; algebraic."
    },
    "psi5": {
      "type": "unknown",
      "units": "kg^-1*m^-3",
      "description": "Linear within-category number-distribution coefficient psi_5 (Eq. 13b) with the positivity constraint Eq. 15 applied; algebraic."
    },
    "alpha1": {
      "type": "unknown",
      "units": "kg^-2*m^-3",
      "description": "Within-category distribution slope (f_1 - psi_1)/(2 x_1) for category 1; algebraic."
    },
    "alpha2": {
      "type": "unknown",
      "units": "kg^-2*m^-3",
      "description": "Within-category distribution slope (f_2 - psi_2)/(2 x_2) for category 2; algebraic."
    },
    "alpha3": {
      "type": "unknown",
      "units": "kg^-2*m^-3",
      "description": "Within-category distribution slope (f_3 - psi_3)/(2 x_3) for category 3; algebraic."
    },
    "alpha4": {
      "type": "unknown",
      "units": "kg^-2*m^-3",
      "description": "Within-category distribution slope (f_4 - psi_4)/(2 x_4) for category 4; algebraic."
    },
    "alpha5": {
      "type": "unknown",
      "units": "kg^-2*m^-3",
      "description": "Within-category distribution slope (f_5 - psi_5)/(2 x_5) for category 5; algebraic."
    }
  },
  "equations": [
    {
      "lhs": {
        "op": "D",
        "args": [
          "N1"
        ],
        "wrt": "t"
      },
      "rhs": {
        "op": "+",
        "args": [
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              2.0,
              "N1",
              "M1"
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "M1",
                      "N2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "N1",
                      "M2"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "M1",
                      "N3"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "N1",
                      "M3"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "M1",
                      "N4"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "N1",
                      "M4"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "M1",
                      "N5"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "N1",
                      "M5"
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": {
        "op": "D",
        "args": [
          "N2"
        ],
        "wrt": "t"
      },
      "rhs": {
        "op": "+",
        "args": [
          {
            "op": "*",
            "args": [
              "C",
              "N1",
              "M1"
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              2.0,
              "N2",
              "M2"
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      6.4e-14,
                      "psi2",
                      "M1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      0.5,
                      "f2",
                      "Z1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha2",
                      "Q1"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "M2",
                      "N3"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "N2",
                      "M3"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "M2",
                      "N4"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "N2",
                      "M4"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "M2",
                      "N5"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "N2",
                      "M5"
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": {
        "op": "D",
        "args": [
          "N3"
        ],
        "wrt": "t"
      },
      "rhs": {
        "op": "+",
        "args": [
          {
            "op": "*",
            "args": [
              "C",
              "N2",
              "M2"
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              2.0,
              "N3",
              "M3"
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      6.4e-14,
                      "psi2",
                      "M1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      0.5,
                      "f2",
                      "Z1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha2",
                      "Q1"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      1.28e-13,
                      "psi3",
                      "M1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      0.5,
                      "f3",
                      "Z1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha3",
                      "Q1"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      1.28e-13,
                      "psi3",
                      "M2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      0.5,
                      "f3",
                      "Z2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha3",
                      "Q2"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "M3",
                      "N4"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "N3",
                      "M4"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "M3",
                      "N5"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "N3",
                      "M5"
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": {
        "op": "D",
        "args": [
          "N4"
        ],
        "wrt": "t"
      },
      "rhs": {
        "op": "+",
        "args": [
          {
            "op": "*",
            "args": [
              "C",
              "N3",
              "M3"
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              2.0,
              "N4",
              "M4"
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      1.28e-13,
                      "psi3",
                      "M1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      0.5,
                      "f3",
                      "Z1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha3",
                      "Q1"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      1.28e-13,
                      "psi3",
                      "M2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      0.5,
                      "f3",
                      "Z2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha3",
                      "Q2"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      2.56e-13,
                      "psi4",
                      "M1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      0.5,
                      "f4",
                      "Z1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha4",
                      "Q1"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      2.56e-13,
                      "psi4",
                      "M2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      0.5,
                      "f4",
                      "Z2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha4",
                      "Q2"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      2.56e-13,
                      "psi4",
                      "M3"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      0.5,
                      "f4",
                      "Z3"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha4",
                      "Q3"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "M4",
                      "N5"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "N4",
                      "M5"
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": {
        "op": "D",
        "args": [
          "N5"
        ],
        "wrt": "t"
      },
      "rhs": {
        "op": "+",
        "args": [
          {
            "op": "*",
            "args": [
              "C",
              "N4",
              "M4"
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              2.0,
              "N5",
              "M5"
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      2.56e-13,
                      "psi4",
                      "M1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      0.5,
                      "f4",
                      "Z1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha4",
                      "Q1"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      2.56e-13,
                      "psi4",
                      "M2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      0.5,
                      "f4",
                      "Z2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha4",
                      "Q2"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      2.56e-13,
                      "psi4",
                      "M3"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      0.5,
                      "f4",
                      "Z3"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha4",
                      "Q3"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      5.12e-13,
                      "psi5",
                      "M1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      0.5,
                      "f5",
                      "Z1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha5",
                      "Q1"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      5.12e-13,
                      "psi5",
                      "M2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      0.5,
                      "f5",
                      "Z2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha5",
                      "Q2"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      5.12e-13,
                      "psi5",
                      "M3"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      0.5,
                      "f5",
                      "Z3"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha5",
                      "Q3"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      5.12e-13,
                      "psi5",
                      "M4"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      0.5,
                      "f5",
                      "Z4"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha5",
                      "Q4"
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": {
        "op": "D",
        "args": [
          "M1"
        ],
        "wrt": "t"
      },
      "rhs": {
        "op": "+",
        "args": [
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "N1",
                      "Z1"
                    ]
                  },
                  {
                    "op": "^",
                    "args": [
                      "M1",
                      2
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "Z1",
                      "N2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "M1",
                      "M2"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "Z1",
                      "N3"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "M1",
                      "M3"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "Z1",
                      "N4"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "M1",
                      "M4"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "Z1",
                      "N5"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "M1",
                      "M5"
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": {
        "op": "D",
        "args": [
          "M2"
        ],
        "wrt": "t"
      },
      "rhs": {
        "op": "+",
        "args": [
          {
            "op": "*",
            "args": [
              "C",
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "N1",
                      "Z1"
                    ]
                  },
                  {
                    "op": "^",
                    "args": [
                      "M1",
                      2
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "N2",
                      "Z2"
                    ]
                  },
                  {
                    "op": "^",
                    "args": [
                      "M2",
                      2
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      4.096e-27,
                      "psi2",
                      "M1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      3.2e-14,
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              0.5,
                              "f2"
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              2.0,
                              "psi2"
                            ]
                          }
                        ]
                      },
                      "Z1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          "f2",
                          "psi2"
                        ]
                      },
                      "Q1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha2",
                      "R1"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              "M2",
              "M1"
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              "N2",
              "Z1"
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "Z2",
                      "N3"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "M2",
                      "M3"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "Z2",
                      "N4"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "M2",
                      "M4"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "Z2",
                      "N5"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "M2",
                      "M5"
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": {
        "op": "D",
        "args": [
          "M3"
        ],
        "wrt": "t"
      },
      "rhs": {
        "op": "+",
        "args": [
          {
            "op": "*",
            "args": [
              "C",
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "N2",
                      "Z2"
                    ]
                  },
                  {
                    "op": "^",
                    "args": [
                      "M2",
                      2
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "N3",
                      "Z3"
                    ]
                  },
                  {
                    "op": "^",
                    "args": [
                      "M3",
                      2
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      4.096e-27,
                      "psi2",
                      "M1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      3.2e-14,
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              0.5,
                              "f2"
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              2.0,
                              "psi2"
                            ]
                          }
                        ]
                      },
                      "Z1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          "f2",
                          "psi2"
                        ]
                      },
                      "Q1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha2",
                      "R1"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      1.6384e-26,
                      "psi3",
                      "M1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      6.4e-14,
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              0.5,
                              "f3"
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              2.0,
                              "psi3"
                            ]
                          }
                        ]
                      },
                      "Z1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          "f3",
                          "psi3"
                        ]
                      },
                      "Q1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha3",
                      "R1"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              "M3",
              "M1"
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              "N3",
              "Z1"
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      1.6384e-26,
                      "psi3",
                      "M2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      6.4e-14,
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              0.5,
                              "f3"
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              2.0,
                              "psi3"
                            ]
                          }
                        ]
                      },
                      "Z2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          "f3",
                          "psi3"
                        ]
                      },
                      "Q2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha3",
                      "R2"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              "M3",
              "M2"
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              "N3",
              "Z2"
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "Z3",
                      "N4"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "M3",
                      "M4"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "Z3",
                      "N5"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "M3",
                      "M5"
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": {
        "op": "D",
        "args": [
          "M4"
        ],
        "wrt": "t"
      },
      "rhs": {
        "op": "+",
        "args": [
          {
            "op": "*",
            "args": [
              "C",
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "N3",
                      "Z3"
                    ]
                  },
                  {
                    "op": "^",
                    "args": [
                      "M3",
                      2
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "N4",
                      "Z4"
                    ]
                  },
                  {
                    "op": "^",
                    "args": [
                      "M4",
                      2
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      1.6384e-26,
                      "psi3",
                      "M1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      6.4e-14,
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              0.5,
                              "f3"
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              2.0,
                              "psi3"
                            ]
                          }
                        ]
                      },
                      "Z1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          "f3",
                          "psi3"
                        ]
                      },
                      "Q1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha3",
                      "R1"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      1.6384e-26,
                      "psi3",
                      "M2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      6.4e-14,
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              0.5,
                              "f3"
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              2.0,
                              "psi3"
                            ]
                          }
                        ]
                      },
                      "Z2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          "f3",
                          "psi3"
                        ]
                      },
                      "Q2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha3",
                      "R2"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      6.5536e-26,
                      "psi4",
                      "M1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      1.28e-13,
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              0.5,
                              "f4"
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              2.0,
                              "psi4"
                            ]
                          }
                        ]
                      },
                      "Z1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          "f4",
                          "psi4"
                        ]
                      },
                      "Q1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha4",
                      "R1"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              "M4",
              "M1"
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              "N4",
              "Z1"
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      6.5536e-26,
                      "psi4",
                      "M2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      1.28e-13,
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              0.5,
                              "f4"
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              2.0,
                              "psi4"
                            ]
                          }
                        ]
                      },
                      "Z2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          "f4",
                          "psi4"
                        ]
                      },
                      "Q2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha4",
                      "R2"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              "M4",
              "M2"
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              "N4",
              "Z2"
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      6.5536e-26,
                      "psi4",
                      "M3"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      1.28e-13,
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              0.5,
                              "f4"
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              2.0,
                              "psi4"
                            ]
                          }
                        ]
                      },
                      "Z3"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          "f4",
                          "psi4"
                        ]
                      },
                      "Q3"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha4",
                      "R3"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              "M4",
              "M3"
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              "N4",
              "Z3"
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "Z4",
                      "N5"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "M4",
                      "M5"
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": {
        "op": "D",
        "args": [
          "M5"
        ],
        "wrt": "t"
      },
      "rhs": {
        "op": "+",
        "args": [
          {
            "op": "*",
            "args": [
              "C",
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "N4",
                      "Z4"
                    ]
                  },
                  {
                    "op": "^",
                    "args": [
                      "M4",
                      2
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "N5",
                      "Z5"
                    ]
                  },
                  {
                    "op": "^",
                    "args": [
                      "M5",
                      2
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      6.5536e-26,
                      "psi4",
                      "M1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      1.28e-13,
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              0.5,
                              "f4"
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              2.0,
                              "psi4"
                            ]
                          }
                        ]
                      },
                      "Z1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          "f4",
                          "psi4"
                        ]
                      },
                      "Q1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha4",
                      "R1"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      6.5536e-26,
                      "psi4",
                      "M2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      1.28e-13,
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              0.5,
                              "f4"
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              2.0,
                              "psi4"
                            ]
                          }
                        ]
                      },
                      "Z2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          "f4",
                          "psi4"
                        ]
                      },
                      "Q2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha4",
                      "R2"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      6.5536e-26,
                      "psi4",
                      "M3"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      1.28e-13,
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              0.5,
                              "f4"
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              2.0,
                              "psi4"
                            ]
                          }
                        ]
                      },
                      "Z3"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          "f4",
                          "psi4"
                        ]
                      },
                      "Q3"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha4",
                      "R3"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      2.62144e-25,
                      "psi5",
                      "M1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      2.56e-13,
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              0.5,
                              "f5"
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              2.0,
                              "psi5"
                            ]
                          }
                        ]
                      },
                      "Z1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          "f5",
                          "psi5"
                        ]
                      },
                      "Q1"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha5",
                      "R1"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              "M5",
              "M1"
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              "N5",
              "Z1"
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      2.62144e-25,
                      "psi5",
                      "M2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      2.56e-13,
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              0.5,
                              "f5"
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              2.0,
                              "psi5"
                            ]
                          }
                        ]
                      },
                      "Z2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          "f5",
                          "psi5"
                        ]
                      },
                      "Q2"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha5",
                      "R2"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              "M5",
              "M2"
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              "N5",
              "Z2"
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      2.62144e-25,
                      "psi5",
                      "M3"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      2.56e-13,
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              0.5,
                              "f5"
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              2.0,
                              "psi5"
                            ]
                          }
                        ]
                      },
                      "Z3"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          "f5",
                          "psi5"
                        ]
                      },
                      "Q3"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha5",
                      "R3"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              "M5",
              "M3"
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              "N5",
              "Z3"
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "C"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      2.62144e-25,
                      "psi5",
                      "M4"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      2.56e-13,
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              0.5,
                              "f5"
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              2.0,
                              "psi5"
                            ]
                          }
                        ]
                      },
                      "Z4"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          "f5",
                          "psi5"
                        ]
                      },
                      "Q4"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "alpha5",
                      "R4"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              "M5",
              "M4"
            ]
          },
          {
            "op": "*",
            "args": [
              "C",
              "N5",
              "Z4"
            ]
          }
        ]
      }
    },
    {
      "lhs": "xb1",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              "M1",
              "N1"
            ]
          },
          {
            "op": "+",
            "args": [
              {
                "op": "^",
                "args": [
                  "N1",
                  2
                ]
              },
              1e-300
            ]
          }
        ]
      }
    },
    {
      "lhs": "xb2",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              "M2",
              "N2"
            ]
          },
          {
            "op": "+",
            "args": [
              {
                "op": "^",
                "args": [
                  "N2",
                  2
                ]
              },
              1e-300
            ]
          }
        ]
      }
    },
    {
      "lhs": "xb3",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              "M3",
              "N3"
            ]
          },
          {
            "op": "+",
            "args": [
              {
                "op": "^",
                "args": [
                  "N3",
                  2
                ]
              },
              1e-300
            ]
          }
        ]
      }
    },
    {
      "lhs": "xb4",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              "M4",
              "N4"
            ]
          },
          {
            "op": "+",
            "args": [
              {
                "op": "^",
                "args": [
                  "N4",
                  2
                ]
              },
              1e-300
            ]
          }
        ]
      }
    },
    {
      "lhs": "xb5",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              "M5",
              "N5"
            ]
          },
          {
            "op": "+",
            "args": [
              {
                "op": "^",
                "args": [
                  "N5",
                  2
                ]
              },
              1e-300
            ]
          }
        ]
      }
    },
    {
      "lhs": "Z1",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              "XI_P",
              {
                "op": "^",
                "args": [
                  "M1",
                  2
                ]
              },
              "N1"
            ]
          },
          {
            "op": "+",
            "args": [
              {
                "op": "^",
                "args": [
                  "N1",
                  2
                ]
              },
              1e-300
            ]
          }
        ]
      }
    },
    {
      "lhs": "Z2",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              "XI_P",
              {
                "op": "^",
                "args": [
                  "M2",
                  2
                ]
              },
              "N2"
            ]
          },
          {
            "op": "+",
            "args": [
              {
                "op": "^",
                "args": [
                  "N2",
                  2
                ]
              },
              1e-300
            ]
          }
        ]
      }
    },
    {
      "lhs": "Z3",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              "XI_P",
              {
                "op": "^",
                "args": [
                  "M3",
                  2
                ]
              },
              "N3"
            ]
          },
          {
            "op": "+",
            "args": [
              {
                "op": "^",
                "args": [
                  "N3",
                  2
                ]
              },
              1e-300
            ]
          }
        ]
      }
    },
    {
      "lhs": "Z4",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              "XI_P",
              {
                "op": "^",
                "args": [
                  "M4",
                  2
                ]
              },
              "N4"
            ]
          },
          {
            "op": "+",
            "args": [
              {
                "op": "^",
                "args": [
                  "N4",
                  2
                ]
              },
              1e-300
            ]
          }
        ]
      }
    },
    {
      "lhs": "Z5",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              "XI_P",
              {
                "op": "^",
                "args": [
                  "M5",
                  2
                ]
              },
              "N5"
            ]
          },
          {
            "op": "+",
            "args": [
              {
                "op": "^",
                "args": [
                  "N5",
                  2
                ]
              },
              1e-300
            ]
          }
        ]
      }
    },
    {
      "lhs": "Q1",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              {
                "op": "^",
                "args": [
                  "XI_P",
                  2
                ]
              },
              {
                "op": "^",
                "args": [
                  "M1",
                  3
                ]
              },
              {
                "op": "^",
                "args": [
                  "N1",
                  2
                ]
              }
            ]
          },
          {
            "op": "+",
            "args": [
              {
                "op": "^",
                "args": [
                  "N1",
                  4
                ]
              },
              1e-300
            ]
          }
        ]
      }
    },
    {
      "lhs": "Q2",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              {
                "op": "^",
                "args": [
                  "XI_P",
                  2
                ]
              },
              {
                "op": "^",
                "args": [
                  "M2",
                  3
                ]
              },
              {
                "op": "^",
                "args": [
                  "N2",
                  2
                ]
              }
            ]
          },
          {
            "op": "+",
            "args": [
              {
                "op": "^",
                "args": [
                  "N2",
                  4
                ]
              },
              1e-300
            ]
          }
        ]
      }
    },
    {
      "lhs": "Q3",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              {
                "op": "^",
                "args": [
                  "XI_P",
                  2
                ]
              },
              {
                "op": "^",
                "args": [
                  "M3",
                  3
                ]
              },
              {
                "op": "^",
                "args": [
                  "N3",
                  2
                ]
              }
            ]
          },
          {
            "op": "+",
            "args": [
              {
                "op": "^",
                "args": [
                  "N3",
                  4
                ]
              },
              1e-300
            ]
          }
        ]
      }
    },
    {
      "lhs": "Q4",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              {
                "op": "^",
                "args": [
                  "XI_P",
                  2
                ]
              },
              {
                "op": "^",
                "args": [
                  "M4",
                  3
                ]
              },
              {
                "op": "^",
                "args": [
                  "N4",
                  2
                ]
              }
            ]
          },
          {
            "op": "+",
            "args": [
              {
                "op": "^",
                "args": [
                  "N4",
                  4
                ]
              },
              1e-300
            ]
          }
        ]
      }
    },
    {
      "lhs": "Q5",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              {
                "op": "^",
                "args": [
                  "XI_P",
                  2
                ]
              },
              {
                "op": "^",
                "args": [
                  "M5",
                  3
                ]
              },
              {
                "op": "^",
                "args": [
                  "N5",
                  2
                ]
              }
            ]
          },
          {
            "op": "+",
            "args": [
              {
                "op": "^",
                "args": [
                  "N5",
                  4
                ]
              },
              1e-300
            ]
          }
        ]
      }
    },
    {
      "lhs": "R1",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              {
                "op": "^",
                "args": [
                  "XI_P",
                  3
                ]
              },
              {
                "op": "^",
                "args": [
                  "M1",
                  4
                ]
              },
              {
                "op": "^",
                "args": [
                  "N1",
                  3
                ]
              }
            ]
          },
          {
            "op": "+",
            "args": [
              {
                "op": "^",
                "args": [
                  "N1",
                  6
                ]
              },
              1e-300
            ]
          }
        ]
      }
    },
    {
      "lhs": "R2",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              {
                "op": "^",
                "args": [
                  "XI_P",
                  3
                ]
              },
              {
                "op": "^",
                "args": [
                  "M2",
                  4
                ]
              },
              {
                "op": "^",
                "args": [
                  "N2",
                  3
                ]
              }
            ]
          },
          {
            "op": "+",
            "args": [
              {
                "op": "^",
                "args": [
                  "N2",
                  6
                ]
              },
              1e-300
            ]
          }
        ]
      }
    },
    {
      "lhs": "R3",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              {
                "op": "^",
                "args": [
                  "XI_P",
                  3
                ]
              },
              {
                "op": "^",
                "args": [
                  "M3",
                  4
                ]
              },
              {
                "op": "^",
                "args": [
                  "N3",
                  3
                ]
              }
            ]
          },
          {
            "op": "+",
            "args": [
              {
                "op": "^",
                "args": [
                  "N3",
                  6
                ]
              },
              1e-300
            ]
          }
        ]
      }
    },
    {
      "lhs": "R4",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              {
                "op": "^",
                "args": [
                  "XI_P",
                  3
                ]
              },
              {
                "op": "^",
                "args": [
                  "M4",
                  4
                ]
              },
              {
                "op": "^",
                "args": [
                  "N4",
                  3
                ]
              }
            ]
          },
          {
            "op": "+",
            "args": [
              {
                "op": "^",
                "args": [
                  "N4",
                  6
                ]
              },
              1e-300
            ]
          }
        ]
      }
    },
    {
      "lhs": "R5",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              {
                "op": "^",
                "args": [
                  "XI_P",
                  3
                ]
              },
              {
                "op": "^",
                "args": [
                  "M5",
                  4
                ]
              },
              {
                "op": "^",
                "args": [
                  "N5",
                  3
                ]
              }
            ]
          },
          {
            "op": "+",
            "args": [
              {
                "op": "^",
                "args": [
                  "N5",
                  6
                ]
              },
              1e-300
            ]
          }
        ]
      }
    },
    {
      "lhs": "f1",
      "rhs": {
        "op": "ifelse",
        "args": [
          {
            "op": "<",
            "args": [
              "xb1",
              1.6e-14
            ]
          },
          0.0,
          {
            "op": "ifelse",
            "args": [
              {
                "op": ">",
                "args": [
                  "xb1",
                  3.2e-14
                ]
              },
              {
                "op": "/",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      2.0,
                      "N1"
                    ]
                  },
                  1.6e-14
                ]
              },
              {
                "op": "-",
                "args": [
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          4.0,
                          "N1"
                        ]
                      },
                      1.6e-14
                    ]
                  },
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          2.0,
                          "M1"
                        ]
                      },
                      2.56e-28
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": "f2",
      "rhs": {
        "op": "ifelse",
        "args": [
          {
            "op": "<",
            "args": [
              "xb2",
              3.2e-14
            ]
          },
          0.0,
          {
            "op": "ifelse",
            "args": [
              {
                "op": ">",
                "args": [
                  "xb2",
                  6.4e-14
                ]
              },
              {
                "op": "/",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      2.0,
                      "N2"
                    ]
                  },
                  3.2e-14
                ]
              },
              {
                "op": "-",
                "args": [
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          4.0,
                          "N2"
                        ]
                      },
                      3.2e-14
                    ]
                  },
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          2.0,
                          "M2"
                        ]
                      },
                      1.024e-27
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": "f3",
      "rhs": {
        "op": "ifelse",
        "args": [
          {
            "op": "<",
            "args": [
              "xb3",
              6.4e-14
            ]
          },
          0.0,
          {
            "op": "ifelse",
            "args": [
              {
                "op": ">",
                "args": [
                  "xb3",
                  1.28e-13
                ]
              },
              {
                "op": "/",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      2.0,
                      "N3"
                    ]
                  },
                  6.4e-14
                ]
              },
              {
                "op": "-",
                "args": [
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          4.0,
                          "N3"
                        ]
                      },
                      6.4e-14
                    ]
                  },
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          2.0,
                          "M3"
                        ]
                      },
                      4.096e-27
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": "f4",
      "rhs": {
        "op": "ifelse",
        "args": [
          {
            "op": "<",
            "args": [
              "xb4",
              1.28e-13
            ]
          },
          0.0,
          {
            "op": "ifelse",
            "args": [
              {
                "op": ">",
                "args": [
                  "xb4",
                  2.56e-13
                ]
              },
              {
                "op": "/",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      2.0,
                      "N4"
                    ]
                  },
                  1.28e-13
                ]
              },
              {
                "op": "-",
                "args": [
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          4.0,
                          "N4"
                        ]
                      },
                      1.28e-13
                    ]
                  },
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          2.0,
                          "M4"
                        ]
                      },
                      1.6384e-26
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": "f5",
      "rhs": {
        "op": "ifelse",
        "args": [
          {
            "op": "<",
            "args": [
              "xb5",
              2.56e-13
            ]
          },
          0.0,
          {
            "op": "ifelse",
            "args": [
              {
                "op": ">",
                "args": [
                  "xb5",
                  5.12e-13
                ]
              },
              {
                "op": "/",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      2.0,
                      "N5"
                    ]
                  },
                  2.56e-13
                ]
              },
              {
                "op": "-",
                "args": [
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          4.0,
                          "N5"
                        ]
                      },
                      2.56e-13
                    ]
                  },
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          2.0,
                          "M5"
                        ]
                      },
                      6.5536e-26
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": "psi1",
      "rhs": {
        "op": "ifelse",
        "args": [
          {
            "op": "<",
            "args": [
              "xb1",
              1.6e-14
            ]
          },
          {
            "op": "/",
            "args": [
              {
                "op": "*",
                "args": [
                  2.0,
                  "N1"
                ]
              },
              1.6e-14
            ]
          },
          {
            "op": "ifelse",
            "args": [
              {
                "op": ">",
                "args": [
                  "xb1",
                  3.2e-14
                ]
              },
              0.0,
              {
                "op": "-",
                "args": [
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          2.0,
                          "M1"
                        ]
                      },
                      2.56e-28
                    ]
                  },
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          2.0,
                          "N1"
                        ]
                      },
                      1.6e-14
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": "psi2",
      "rhs": {
        "op": "ifelse",
        "args": [
          {
            "op": "<",
            "args": [
              "xb2",
              3.2e-14
            ]
          },
          {
            "op": "/",
            "args": [
              {
                "op": "*",
                "args": [
                  2.0,
                  "N2"
                ]
              },
              3.2e-14
            ]
          },
          {
            "op": "ifelse",
            "args": [
              {
                "op": ">",
                "args": [
                  "xb2",
                  6.4e-14
                ]
              },
              0.0,
              {
                "op": "-",
                "args": [
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          2.0,
                          "M2"
                        ]
                      },
                      1.024e-27
                    ]
                  },
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          2.0,
                          "N2"
                        ]
                      },
                      3.2e-14
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": "psi3",
      "rhs": {
        "op": "ifelse",
        "args": [
          {
            "op": "<",
            "args": [
              "xb3",
              6.4e-14
            ]
          },
          {
            "op": "/",
            "args": [
              {
                "op": "*",
                "args": [
                  2.0,
                  "N3"
                ]
              },
              6.4e-14
            ]
          },
          {
            "op": "ifelse",
            "args": [
              {
                "op": ">",
                "args": [
                  "xb3",
                  1.28e-13
                ]
              },
              0.0,
              {
                "op": "-",
                "args": [
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          2.0,
                          "M3"
                        ]
                      },
                      4.096e-27
                    ]
                  },
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          2.0,
                          "N3"
                        ]
                      },
                      6.4e-14
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": "psi4",
      "rhs": {
        "op": "ifelse",
        "args": [
          {
            "op": "<",
            "args": [
              "xb4",
              1.28e-13
            ]
          },
          {
            "op": "/",
            "args": [
              {
                "op": "*",
                "args": [
                  2.0,
                  "N4"
                ]
              },
              1.28e-13
            ]
          },
          {
            "op": "ifelse",
            "args": [
              {
                "op": ">",
                "args": [
                  "xb4",
                  2.56e-13
                ]
              },
              0.0,
              {
                "op": "-",
                "args": [
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          2.0,
                          "M4"
                        ]
                      },
                      1.6384e-26
                    ]
                  },
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          2.0,
                          "N4"
                        ]
                      },
                      1.28e-13
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": "psi5",
      "rhs": {
        "op": "ifelse",
        "args": [
          {
            "op": "<",
            "args": [
              "xb5",
              2.56e-13
            ]
          },
          {
            "op": "/",
            "args": [
              {
                "op": "*",
                "args": [
                  2.0,
                  "N5"
                ]
              },
              2.56e-13
            ]
          },
          {
            "op": "ifelse",
            "args": [
              {
                "op": ">",
                "args": [
                  "xb5",
                  5.12e-13
                ]
              },
              0.0,
              {
                "op": "-",
                "args": [
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          2.0,
                          "M5"
                        ]
                      },
                      6.5536e-26
                    ]
                  },
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          2.0,
                          "N5"
                        ]
                      },
                      2.56e-13
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": "alpha1",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "-",
            "args": [
              "f1",
              "psi1"
            ]
          },
          3.2e-14
        ]
      }
    },
    {
      "lhs": "alpha2",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "-",
            "args": [
              "f2",
              "psi2"
            ]
          },
          6.4e-14
        ]
      }
    },
    {
      "lhs": "alpha3",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "-",
            "args": [
              "f3",
              "psi3"
            ]
          },
          1.28e-13
        ]
      }
    },
    {
      "lhs": "alpha4",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "-",
            "args": [
              "f4",
              "psi4"
            ]
          },
          2.56e-13
        ]
      }
    },
    {
      "lhs": "alpha5",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "-",
            "args": [
              "f5",
              "psi5"
            ]
          },
          5.12e-13
        ]
      }
    }
  ],
  "tests": [
    {
      "id": "exponential_ic_golovin",
      "description": "Upstream Aerosol.jl stochastic_collection_test.jl scenario, Golovin K(x,y)=C(x+y) kernel, I=5 mass categories. Exponential initial droplet spectrum (N0=3e8 m^-3, LWC=1e-3 kg m^-3). The integration runs to 20000000 s: at the upstream default C=1.5e-3 the Golovin kernel has a ~6e7 s coalescence e-folding time for this droplet spectrum, so a shorter span would leave the kernel essentially unexercised. Expected values are a SciPy LSODA reference integration (rtol=1e-10, abstol=1e-14) of the scalarized RHS; that RHS is verified against the upstream @arrayop model in the model reference notes (transcription audit, double-sum cross-check, and machine-precision no-overflow analytic identities).",
      "initial_conditions": {
        "N1": 1429670.6078643417,
        "M1": 3.430294470019302e-08,
        "N2": 2838836.0713738734,
        "M2": 1.3619145733423377e-07,
        "N3": 5596563.981307812,
        "M3": 5.366970575748642e-07,
        "N4": 10875864.787608625,
        "M4": 2.083711394480048e-06,
        "N5": 20538015.50564386,
        "M5": 7.852951776977424e-06
      },
      "time_span": {
        "start": 0.0,
        "end": 20000000.0
      },
      "assertions": [
        {
          "variable": "N1",
          "time": 0.0,
          "expected": 1429670.6078643417
        },
        {
          "variable": "M5",
          "time": 0.0,
          "expected": 7.852951776977424e-06
        },
        {
          "variable": "N1",
          "time": 10000000.0,
          "expected": 1226734.7184557277
        },
        {
          "variable": "N3",
          "time": 10000000.0,
          "expected": 4635006.118271516
        },
        {
          "variable": "N5",
          "time": 10000000.0,
          "expected": 15768555.72474853
        },
        {
          "variable": "M3",
          "time": 10000000.0,
          "expected": 4.431295664124102e-07
        },
        {
          "variable": "M5",
          "time": 10000000.0,
          "expected": 5.980459074233704e-06
        },
        {
          "variable": "N1",
          "time": 20000000.0,
          "expected": 1085906.2038762474
        },
        {
          "variable": "N3",
          "time": 20000000.0,
          "expected": 3987804.463289013
        },
        {
          "variable": "N5",
          "time": 20000000.0,
          "expected": 12808387.83689668
        },
        {
          "variable": "M3",
          "time": 20000000.0,
          "expected": 3.803162734898209e-07
        },
        {
          "variable": "M5",
          "time": 20000000.0,
          "expected": 4.827494316359276e-06
        }
      ]
    }
  ],
  "analyses": [
    {
      "id": "exponential_ic_evolution_golovin",
      "description": "Evolution of the droplet number and mass spectra under the golovin collection kernel, started from an exponential initial distribution. Number concentration decreases as droplets coalesce; mass shifts toward larger categories.",
      "initial_state": {
        "N1": 1429670.6078643417,
        "M1": 3.430294470019302e-08,
        "N2": 2838836.0713738734,
        "M2": 1.3619145733423377e-07,
        "N3": 5596563.981307812,
        "M3": 5.366970575748642e-07,
        "N4": 10875864.787608625,
        "M4": 2.083711394480048e-06,
        "N5": 20538015.50564386,
        "M5": 7.852951776977424e-06
      },
      "time_span": {
        "start": 0.0,
        "end": 20000000.0
      },
      "plots": [
        {
          "id": "number_concentration",
          "type": "line",
          "description": "Number concentration N_k(t) for each of the 5 mass categories.",
          "x": {
            "variable": "t",
            "label": "time (s)"
          },
          "y": {
            "variable": "N1",
            "label": "number concentration (m^-3)"
          },
          "series": [
            {
              "name": "N1",
              "variable": "N1"
            },
            {
              "name": "N2",
              "variable": "N2"
            },
            {
              "name": "N3",
              "variable": "N3"
            },
            {
              "name": "N4",
              "variable": "N4"
            },
            {
              "name": "N5",
              "variable": "N5"
            }
          ]
        },
        {
          "id": "mass_concentration",
          "type": "line",
          "description": "Mass concentration M_k(t) for each of the 5 mass categories.",
          "x": {
            "variable": "t",
            "label": "time (s)"
          },
          "y": {
            "variable": "M1",
            "label": "mass concentration (kg*m^-3)"
          },
          "series": [
            {
              "name": "M1",
              "variable": "M1"
            },
            {
              "name": "M2",
              "variable": "M2"
            },
            {
              "name": "M3",
              "variable": "M3"
            },
            {
              "name": "M4",
              "variable": "M4"
            },
            {
              "name": "M5",
              "variable": "M5"
            }
          ]
        }
      ]
    }
  ]
}