Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

6 Transient PBR Model — Acetylene Semi-Hydrogenation

Delft University of Technology
Updated: 18 Oct 2026

Method-of-Lines packed-bed reactor (PBR) model for the transient semi-hydrogenation of acetylene (C₂H₂) to ethylene (C₂H₄) and ethane (C₂H₆) on a spherical catalyst pellet.

The model couples bulk gas-phase advection (plug flow), intra-particle diffusion (spherical coordinates), and Langmuir–Hinshelwood surface kinetics into a single system of 1 480 ODEs, integrated with an implicit BDF solver.

1. Parameters

All physical, operational, kinetic, and transport parameters are collected in a single ModelParams class. This keeps the model configuration in one place and makes it easy to swap parameter sets for different catalysts or operating conditions.

  • Reactor & hardware: length LL, pellet radius RpR_p, bed and pellet porosities (εb\varepsilon_b, εp\varepsilon_p), pellet density ρs\rho_s, total active-site capacity CtC_t, superficial velocity usu_s, and geometry factor ss (2 = sphere).

  • Operating: isothermal temperature TT and the gas constant RGR_G. Inlet concentrations for all four gas species.

  • Kinetics: Arrhenius reference rate constants krefk_{ref} and activation energies EaE_a for each elementary step (adsorption/desorption of H₂, C₂H₂, C₂H₄, and the two surface reactions). Currently all set to 0.0 — placeholders pending literature values.

  • Transport: effective diffusivity DeD_e for each gas species inside the pellet pores.

2. Discretisation & Indexing

The reactor is discretised into Nz=20N_z = 20 axial nodes and each catalyst pellet into Nr=10N_r = 10 radial nodes. The state vector is organised as three blocks:

  1. Bulk gas CbC_b — shape (N_z, N_gas) — gas-phase concentrations in the bed void space.

  2. Pore gas cpc_p — shape (N_z, N_r, N_gas) — gas concentrations inside the pellet pores.

  3. Surface coverage θ\theta — shape (N_z, N_r, N_surf) — fractional coverage of each surface species.

The total system dimension is Nz⋅Ngas+Nz⋅Nr⋅Ngas+Nz⋅Nr⋅Nsurf=80+800+600=1 480N_z \cdot N_{gas} + N_z \cdot N_r \cdot N_{gas} + N_z \cdot N_r \cdot N_{surf} = 80 + 800 + 600 = 1\,480 ODEs.

3. Kinetic Laws

The reaction network follows a Langmuir–Hinshelwood mechanism with two surface reactions:

  1. R1: C₂H₂* + 2H* → C₂H₄* + 2* (acetylene hydrogenation to adsorbed ethylene)

  2. R2: C₂H₄* + 2H* → C₂H₆(g) + 3* (ethylene hydrogenation to ethane, which desorbs directly)

Each elementary step has a forward and reverse rate. The net rates are computed from the pore-gas concentrations cpc_p and surface coverages θ\theta at each (z,r)(z, r) point. The site balance θv=1−∑θi\theta_v = 1 - \sum \theta_i gives the fraction of free sites.

The function returns two arrays: R_gas (net gas-phase production rates, mol/kg_cat/s) and R_surf (net surface accumulation rates, 1/s), which feed into the bulk and surface ODEs respectively.

4. The ODE System (Method of Lines)

The reactor_model function is the right-hand side of the ODE system passed to solve_ivp. It evaluates the spatial derivatives from the outside (bulk) to the inside (pore → chemistry) at each time step.

Discretisation choices

  • Bulk advection — backward difference (upwind): ∂Cb/∂t=−(us/εb) (Cb[z]−Cb[z−1])/dz\partial C_b / \partial t = -(u_s/\varepsilon_b) \, (C_b[z] - C_b[z-1]) / dz. This is first-order accurate but unconditionally stable for the flow direction, which is essential for a convection-dominated PDE.

  • Intra-particle diffusion — central difference: the spherical diffusion operator 1rsddr(rsdcdr)\frac{1}{r^s}\frac{d}{dr}\left(r^s \frac{dc}{dr}\right) is discretised with central differences at interior nodes. At the centre (r=0r=0), a symmetry condition replaces the singular term: the exact spherical limit is 2(1+s)(c1−c0)/dr22(1+s)(c_1 - c_0)/dr^2 (i.e. 6 for s=2s=2).

  • Pellet shell boundary — the outermost radial node (r=Rpr = R_p) is set equal to the bulk concentration (Dirichlet condition), representing the pseudo-homogeneous assumption that the pellet surface sees the bulk gas.

  • Particle-averaged rate — the gas production integrated over the pellet volume is used as the source term in the bulk equation, coupling the two scales.

5. Execution & Implicit Time Integration

The system is integrated with scipy.integrate.solve_ivp using the BDF (Backward Differentiation Formula) method. BDF is an implicit multistep method that is well-suited for stiff systems — here, the chemistry (fast adsorption/desorption) and transport (slow diffusion) operate on very different timescales, making explicit methods like RK45 impractical due to the tiny time steps they would require.

The initial condition is a zero state (empty reactor), and the simulation runs for 10 seconds of physical time. The solver reports the number of time steps taken, which gives a sense of the stiffness ratio.

Initialisatie compleet. Start simulatie met systeemgrootte: 1480 ODEs.
Start integratie via impliciete BDF solver (dit kan even duren afhankelijk van kinetiek)...
Simulatie succesvol afgerond in 8.54 seconden!
Aantal genomen tijdstappen door BDF: 83