Numerical modeling of biomass particle pyrolysis

Lei LI, University of Maryland-College Park, Fire Protection engineering

Author Profile
Initial Publication Date: October 25, 2026
DOI | Cite this

Summary

In this 60-minute computational exercise, students dry a one-dimensional wood slab in MATLAB: they write the moisture-mass and energy equations, run a provided solver that updates mass explicitly and temperature implicitly, and check that integrated mass-loss rate matches moisture actually lost. They then change one physical input (heat flux, thickness, or initial moisture), interpret the overlay as physics rather than a numerical artifact, and name what they would edit to reuse the same two equations for another material, pyrolysis, or a particle geometry. The intended outcome is that seniors can connect Arrhenius drying kinetics, two conservation PDEs, and a basic numerical method to a tangible mass-loss curve—and see how to apply that structure beyond the default cone-like case.

Share your modifications and improvements to this activity through the Community Contribution Tool »

Learning Goals

  1. Write the drying rate and the two conservation statements (moisture mass; energy with endothermicΔH\Delta HΔH).
  2. Explain, for one control volume, how the code updates moisture (explicit) and temperature (implicit Euler + Thomas).
  3. Run MATLAB, plot temperature and MLR, and record wall-clock time.
  4. Change one of thickness, irradiance G, or initial moisture, and interpret the overlay.
  5. Name what to edit to apply the same structure to pyrolysis, a thicker lining, or (in the research code) a cylinder/sphere.

Context for Use

What it is.A 60-minute in-class computational exercise (short board lecture + MATLAB at the seat). Not a field trip, not a wet lab, and not a multi-week project.

Who. Senior undergraduates in Fire Protection Engineering (UMD ENFP). Also junior/senior ME/ChE students in heat transfer, transport, or numerical methods, and first-year grads who have not discretized a reacting solid. Not a first-year calculus-only course.

Class size. Best at 12–30 with a laptop each (or pairs). 40–80 is possible with laptops and a TA. A large lecture with no computers should become an instructor demo, not this activity as written.

Institution. Research-university engineering with a MATLAB license; also an undergraduate engineering college or a MATLAB workshop block.

Time. 60 minutes of class; ~30–45 minutes instructor prep the first time; no student pre-lab. The default run finishes in well under 1 s — the hour is for thinking, not waiting.

Equipment. MATLAB (base, no toolboxes), three .m files, projector, one-page worksheet. No cluster, cone calorimeter, FDS, or the research PBR driver.

Prerequisites. MATLAB at the ENFP 201 level (edit a script, plot); 1D conduction and qnet​ (ENFP 312); Arrhenius means "faster when hotter." They do not need to have written a PDE solver or used the Thomas algorithm.

Where it sits. Entry point to ENFP 489N before pyrolysis and the full PBR code; or one recitation in ENFP 312; or a 60-minute workshop block. Reports and talks stay in the semester course.

Adaptation. Easy: other flux/thickness/moisture, or another drying material via A,E,k,rho,c. Moderate: 50- or 75-minute slots, Octave. Hard: no programming background, or stretching this hour into full PBR/FDS.

Description and Teaching Materials

One 60-minute class, drying only. Board (0–8 min): two PDEs and R1 kinetics. Projector (8–18 min): one control volume inpbr_dry.m — explicit mass, implicit energy, Thomas solver. MATLAB (18–40 min): students run activity_drying, record wall-clock time, peak MLR, and a mass-conservation check. Transfer (40–55 min): change one of G, thickness, or initial moisture; overlay; two sentences of physics. Closer (55–60 min): what to edit for another material, pyrolysis, or a cylinder/sphere in the research code. No hardware lab, no report, no talk. The worksheet is the record of the hour.


Assessment

<table style="background-color:rgb(248, 248, 248);"> <th style="border-bottom:1px solid color(srgb 0.0781959 0.0782189 0.0782211 / 0.12);padding:6px 10px;vertical-align:top;">Goal <th style="border-bottom:1px solid color(srgb 0.0781959 0.0782189 0.0782211 / 0.12);padding:6px 10px;vertical-align:top;">Evidence it was met <td style="border-bottom:1px solid color(srgb 0.0781959 0.0782189 0.0782211 / 0.12);padding:6px 10px;vertical-align:top;">1. Write the two PDEs and the drying rate <td style="border-bottom:1px solid color(srgb 0.0781959 0.0782189 0.0782211 / 0.12);padding:6px 10px;vertical-align:top;">Worksheet §1: Arrhenius rate, −ω˙1​, energy with endothermic ΔH, qnet <td style="border-bottom:1px solid color(srgb 0.0781959 0.0782189 0.0782211 / 0.12);padding:6px 10px;vertical-align:top;">2. Explicit mass vs implicit energy <td style="border-bottom:1px solid color(srgb 0.0781959 0.0782189 0.0782211 / 0.12);padding:6px 10px;vertical-align:top;">Circles on §1, plus one question at the machine ("which loop is mass?") <td style="border-bottom:1px solid color(srgb 0.0781959 0.0782189 0.0782211 / 0.12);padding:6px 10px;vertical-align:top;">3. Run, plot, time the run <td style="border-bottom:1px solid color(srgb 0.0781959 0.0782189 0.0782211 / 0.12);padding:6px 10px;vertical-align:top;">§2 table: wall-clock, Fo, peak MLR; ∫MLR agrees with moisture lost to within a few percent <td style="border-bottom:1px solid color(srgb 0.0781959 0.0782189 0.0782211 / 0.12);padding:6px 10px;vertical-align:top;">4. One physical change, interpreted <td style="border-bottom:1px solid color(srgb 0.0781959 0.0782189 0.0782211 / 0.12);padding:6px 10px;vertical-align:top;">§3: A/B/C only (not dx); two sentences name flux, capacity, or inventory <td style="border-bottom:0px solid color(srgb 0.0781959 0.0782189 0.0782211 / 0.12);padding:6px 10px;vertical-align:top;">5. Reuse in another situation <td style="border-bottom:0px solid color(srgb 0.0781959 0.0782189 0.0782211 / 0.12);padding:6px 10px;vertical-align:top;">§4: a situation matched to an input