8.9 KiB
Emulsion-Polymerization-Modeling — Analysis Notes
Source: gtancev/Emulsion-Polymerization-Modeling
Author: Georgi Tancev, PhD
Relevance to project: ⭐⭐⭐⭐ — Heterogeneous-phase framework; pairs with the copolymerization model
What This Code Does
Simulates seeded emulsion polymerization (Stage II — monomer droplets still present) in a 10 L batch reactor. Two model variants are run:
- Model 1 (
emulsion1.m) — Fixed n̄ = 0.5 (Smith-Ewart Case II) - Model 2 (
emulsion2.m) — Dynamic n̄ from radical entry/exit balance
The state variables are:
n_M— total moles of monomer (both phases)n_M_p— moles of monomer inside particles
Inferred Monomer/System (from parameters)
| Parameter | Value | Interpretation |
|---|---|---|
k_p = 715 L/(mol·s) |
— | Consistent with styrene at ~60°C (lit. ~480–715) |
M_M = 0.1 kg/mol |
— | Styrene MW = 104, close approximation |
M_I = 0.164 kg/mol |
— | AIBN (MW = 164.21) |
k_d = 5.55e-6 s⁻¹ |
— | AIBN at ~60°C |
d_p_0 = 50 nm |
— | Typical seed particle diameter |
phi_M = 0.5 |
— | Monomer volume fraction in swollen particle |
The system is a styrene-like seeded emulsion polymerization in water with AIBN initiator and a nonionic-like emulsifier (Langmuir adsorption with K_E = 100 L/mol).
Model Components
Phase Structure
Three phases are tracked implicitly:
- Water phase — initiator, emulsifier, free radicals (c_R computed at quasi-steady-state:
c_R = sqrt(2f·kd·cI/kt)) - Particle phase — polymer + swollen monomer (volume tracked via v_pol and v_p)
- Droplet phase — reservoir of monomer (present while
n_M_d > 0)
Monomer Partitioning
While monomer droplets exist (Stage II), monomer in particles is maintained at the thermodynamic swelling equilibrium:
dn_M_P = n_s * c_M * 1/(1-phi) * dv_pol
Once droplets are exhausted, dn_M_P = dn_M (Stage III, all remaining monomer is in particles).
Model 1 — Fixed n̄ (emulsion1.m)
Smith-Ewart Case II: n̄ = 0.5 (at any instant, each particle contains exactly 0 or 1 radical with equal probability). Valid for small particles where termination upon entry of a second radical is instantaneous.
n_bar = 0.5;
dn_M = -k_p * c_M * n_bar / N_A * n_s;
Model 2 — Dynamic n̄ (emulsion2.m)
Steady-state radical balance inside particles:
n̄ = ρ / (2ρ + k_des)
where:
ρ = A_p * k_e * c_R * N_A— radical capture rate (1/s), proportional to particle surface areak_des— radical desorption rate constant (1/s)
This is a simplified Nomura/Ugelstad expression that includes desorption as an exit mechanism. It predicts n̄ < 0.5 when desorption is significant.
Emulsifier Partitioning (in main.m only)
The code computes min/max bounds on emulsifier amount using a Langmuir adsorption isotherm:
F_E = F_E_inf * K_E * E_w / (1 + K_E * E_w)
where F_E_inf is the maximum surface coverage (from a_E, the area per emulsifier molecule). This is used to check whether the emulsifier loading falls between minimum stabilization (20% surface coverage) and CMC saturation. This is only calculated, not used dynamically in the ODE.
Critical Bug: Typo in Function Names
The function files contain a typo that will cause MATLAB to fail:
- File:
emulsion1.m→ Function declared as:function [ dm ] = emuslion1(...)(missing 'l', 's' transposed) - File:
emulsion2.m→ Function declared as:function [ dm ] = emuslion2(...)(same typo)
In MATLAB, the function name inside the file must match the filename. main.m calls @emulsion1 and @emulsion2 (correct names), but the functions are defined as emuslion1 and emuslion2. This will throw an error on some MATLAB versions. Fix by correcting the function declarations:
% emulsion1.m line 1: change
function [ dm ] = emuslion1( t,n,n_s,n_M_0,V_p_0 )
% to:
function [ dm ] = emulsion1( t,n,n_s,n_M_0,V_p_0 )
Same fix needed in emulsion2.m.
Physical Limitations
-
Seeded emulsion only (no nucleation) — particle number
n_sis fixed. No homogeneous, micellar, or coagulative nucleation is modeled. This restricts simulation to Stage II and III only. -
Monodisperse particles — all particles are assumed identical (same size, same n̄). Real emulsions have a particle size distribution (PSD).
-
Fixed radical concentration in water —
c_Ris computed once from the initial initiator concentration and held constant. In reality,cIdecays andc_Rdrops with it; this is a significant approximation for long reaction times. -
No temperature model — all rate constants are isothermal. The polymerization of styrene is exothermic (~70 kJ/mol); temperature rise would accelerate kd and kp, changing kinetics.
-
No gel/glass effect — unlike the copolymerization model, emulsion1/2 use constant
k_p. At high conversion inside particles (phi → 0), diffusion limitation on kp should be included. -
No coagulation or Ostwald ripening — particle stability and size evolution by mass transfer are not modeled.
-
n̄ expression in Model 2 is simplified — the full Smith-Ewart recursion for n̄ accounts for termination, entry, and exit across all radical numbers (n = 0, 1, 2, ...). The simplified expression
ρ/(2ρ + k_des)holds in the limit of small n̄ and pseudo-bulk behavior but is not exact for intermediate cases.
Outputs Computed in main.m
For both models, the following are plotted vs. conversion or time:
- Conversion vs. time
- Total particle volume and polymer volume vs. conversion
- Monomer volume fraction in particles (φ) vs. conversion
- Particle diameter vs. conversion
- n̄ vs. time/conversion
- Number-average (n_N) and weight-average (n_W) chain lengths
The chain lengths are computed from the ratio of characteristic time scales:
tau_p = 1/(kp * c_M)— monomer consumption timetau_in = 1/ρ— radical entry interval
Adaptation Suggestions for This Project
1. Fix the function name typo (immediate)
See above — must match file name and function declaration.
2. Fix the decaying initiator (important)
Replace the fixed c_R with an ODE for initiator:
% Add to state vector:
dcI = -kd * cI;
c_R = sqrt(2*f*kd*cI/kt); % updated at each step
3. Couple with copolymerization kinetics
The most powerful adaptation: replace the single-monomer propagation (k_p * c_M * n_bar) with the Mayo-Lewis terminal model (from Copolymerization-Reaction-Modeling/batch.m) operating inside the particle phase. This would give a full emulsion copolymerization model.
4. Python port
Convert to Python using scipy.integrate.solve_ivp. The particle volume calculations and phase-switching logic (Stage II → III) translate straightforwardly.
def emulsion_odes(t, n, params):
n_M, n_M_p = n
# compute phase volumes, phi, c_M, n_bar
# return [dn_M, dn_M_p]
5. Add particle size distribution (PSD)
Replace the single particle with a population balance — discretize particle sizes and track radical occupancy per size class.
6. Compare n̄ models
The two models (fixed vs. dynamic n̄) differ in their treatment of exit kinetics. Comparing their predictions vs. conversion reveals the importance of desorption for the specific monomer system. Small, water-soluble radicals (e.g., from vinyl acetate) have large k_des; hydrophobic monomers (styrene) have small k_des, so Model 1 and Model 2 should agree well for styrene.
Key Literature
-
[1] Free Radical Entry in Emulsion Polymerization: A Comprehensive Theory — Herrera-Ordonez, Macromol. React. Eng. 2025. Critical review of radical entry models; shows diffusion/adsorption is rate-limiting (not aqueous-phase propagation as in older theories).
-
[2] Calculations of the Average Number of Radicals per Particle — Tiwari, 2021. Smith-Ewart recursion and pseudo-bulk vs. 0-1 kinetics — directly relevant to the n̄ approximation used here.
-
[3] Particle by Particle Kinetic Monte Carlo Tracking in Miniemulsion — Marien et al., Macromolecules 2019. kMC approach showing the limits of the average-particle (Smith-Ewart) assumption; important context for Model 1 vs. Model 2.
-
[4] Gilbert, R.G. Emulsion Polymerization: A Mechanistic Approach, Academic Press, 1995. The canonical reference for emulsion polymerization kinetics.
-
[5] Nomura, M.; Harada, M. J. Appl. Polym. Sci. 1981, 26, 17. Original simplified n̄ expression similar to what is used in Model 2.
Notes written: 2026-06-26