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.

L8: Advanced Reactor Modeling

Lecture 8 brings together the implementation patterns needed for coupled multiphase reactor models. The emphasis is not a new finite-volume stencil, but how to assemble interacting domains and physical constraints into maintainable PyMRM models.

Learning Goals

After this lecture you should be able to:

  1. identify when a reactor model needs monolithic coupling instead of sequential submodel calls;

  2. assemble pressure, velocity, heat, and composition constraints in a single residual;

  3. couple reactor-scale and particle-scale balances through boundary or film-transfer equations;

  4. represent surface and membrane transfer as boundary/interface conditions; and

  5. check coupled models using conservation, boundedness, residual norms, and physically expected trends.

Lecture Notebook Sequence

The lecture is organized around five notebooks. They are copied into this book from the working coupling folder so that the lecture notes remain self-contained while the source notebooks can still be developed separately.

PartNotebookCoupling idea
12D monolithic membrane moduleRetentate and permeate domains are coupled by implicit membrane-interface equations.
22D convection-diffusion with boundary surface reactionA 2D bulk phase is coupled to surface coverages through a reactive boundary.
3Coupling of a particle model to a reactor modelReactor and pellet models exchange fluxes and boundary concentrations.
4Reactor-particle coupling with Maxwell-Stefan film transferMulticomponent film transfer couples reactor and particle domains through Maxwell-Stefan transport.
5Pressure-velocity coupled 2D fixed-bed reactorPressure, velocity, temperature, and composition are solved in one nonlinear model.

Common Implementation Pattern

The notebooks use the same structure wherever possible:

  1. define parameters and the array layout explicitly;

  2. build grids and boundary-condition dictionaries before constructing operators;

  3. assemble constant transport operators once;

  4. keep nonlinear physics in small functions or methods;

  5. solve through a residual that returns both the residual vector and Jacobian; and

  6. validate with conservation, monotonicity, positivity, or limiting cases.

This mirrors the model style used throughout the course: spatial axes first, fields last, construct_grad, construct_div, and construct_convflux_upwind for finite-volume operators, and class-based models for reusable coupled PDE examples.

Validation Themes

The lecture examples should be read with the validation checks in mind:

  • membrane coupling: total retentate-plus-permeate molar flow is conserved;

  • surface coupling: surface-site fractions remain bounded and sum to one;

  • particle coupling: reactor-scale conversion responds correctly to particle resistance;

  • Maxwell-Stefan coupling: multicomponent film residuals and particle residuals close simultaneously; and

  • pressure-velocity coupling: ideal-gas consistency and moderate pressure drop.