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.

Exercise Result Check Guide

This document is intended as a check guide for students. It gives reference plots, numerical values, input data, and hints, but it deliberately does not include the full model implementation. Use it after building your own model to check whether your result is in the right range and whether the trends make physical sense.

The figures and printed values in this document are extracted from the current solution notebooks. If a plot in your notebook looks qualitatively different, first check units, boundary conditions, array ordering, and whether the same parameter values were used. When several values for the same symbol are listed, they belong to different subquestions or parameter studies in that exercise.

How to Use This Guide

  1. Reproduce the input data listed for the exercise.

  2. Compare the shape and scale of your plots with the reference figures.

  3. Compare scalar values only to the shown precision; small differences can come from grid size, tolerances, or time-step choices.

  4. For open-ended questions, focus on the reasoning and trends as much as the exact numerical value.

First order reaction in a batch reactor

Input data

Numerical checks

Code block 2:

Max error: 1.80e-07

Reference figures

First order reaction in a batch reactor: Reference figure 1 from code block 1

Equilibrium consecutive batch reactions

Input data

Reference figures

Equilibrium consecutive batch reactions: Reference figure 1 from code block 1Equilibrium consecutive batch reactions: Reference figure 2 from code block 4

Multicomponent convection-reaction with first-order chemical kinetics

Input data

Reference figures

Multicomponent convection-reaction with first-order chemical kinetics: Reference figure 1 from code block 1

Hints and interpretation

The inlet is pure A, while the initial column contains C. After three seconds the inlet front has passed through the bed and the solution is close to the steady plug-flow profile. A is consumed rapidly near the inlet because the Damkohler number k1L/v=10k_1L/v=10 is large. B appears as an intermediate and then decays to C, so its concentration peaks inside the reactor rather than at the outlet.

The printed conservation range verifies that the finite-volume transport and stoichiometric source preserve A+B+CA+B+C to roundoff. The remaining profile shape is therefore chemical, not a numerical mass leak.

Multicomponent convection-reaction with general chemical kinetics

Input data

Reference figures

Multicomponent convection-reaction with general chemical kinetics: Reference figure 1 from code block 2

Hints and interpretation

The first plot matches the first-order exercise but is now solved with the same global Newton pattern used for genuinely nonlinear models. This is the useful teaching transition: replacing a per-cell scipy.optimize.root loop by one sparse residual keeps transport, boundary conditions, and reaction coupling in one place.

The Brusselator case is not a diffusion-driven Turing model; with convection only it is better interpreted as an open-flow autocatalytic reactor. The inlet continuously feeds a low X/Y state. Downstream, autocatalysis amplifies X and Y toward the local kinetic attractor, giving a strong spatial change over one residence time. The parameter B=3>1+A2B=3>1+A^2 is in the oscillatory regime of the well-mixed Brusselator, so the profile is sensitive to residence time and inlet forcing.

Steady state 1D fixed bed reactor model: first order exothermal reaction

Input data

Numerical checks

Code block 3:

Constant-pressure outlet velocity: 6.048 m/s
Constant-velocity outlet temperature: 443.00 K
Constant-pressure outlet temperature: 443.00 K

Reference figures

Steady state 1D fixed bed reactor model: first order exothermal reaction: Reference figure 1 from code block 1Steady state 1D fixed bed reactor model: first order exothermal reaction: Reference figure 2 from code block 2Steady state 1D fixed bed reactor model: first order exothermal reaction: Reference figure 3 from code block 3

Hints and interpretation

The constant-velocity model and the molar-flow model use the same chemistry and heat release. The variable-velocity case gives a lower concentration of A because the mole expansion and temperature rise increase the volumetric flow. The temperature increase is in the expected adiabatic range: heat release raises the gas temperature by tens of kelvin, not hundreds, for the chosen ΔHr\Delta H_r and heat-capacity flow.

A useful check is that B and C remain identical everywhere, as required by the stoichiometry AB+CA\rightarrow B+C. The finite-volume form also makes the inlet and outlet assumptions explicit through the pymrm boundary dictionaries.

Convection of one species using different schemes

Input data

Numerical checks

Code block 1:

Convective timescale ratio v/dx = 2.0000 1/s

Reference figures

Convection of one species using different schemes: Reference figure 1 from code block 1Convection of one species using different schemes: Reference figure 2 from code block 1Convection of one species using different schemes: Reference figure 3 from code block 1Convection of one species using different schemes: Reference figure 4 from code block 1

Solving a one-component 1D diffusion-reaction equation

Input data

Numerical checks

Code block 3:

Maximum difference from steady state after 2 s: 1.110e-03

Reference figures

Solving a one-component 1D diffusion-reaction equation: Reference figure 1 from code block 1Solving a one-component 1D diffusion-reaction equation: Reference figure 2 from code block 2

Multi-component 1D counter-diffusion with reaction

Input data

Reference figures

Multi-component 1D counter-diffusion with reaction: Reference figure 1 from code block 1Multi-component 1D counter-diffusion with reaction: Reference figure 2 from code block 3

Multi-component 1D counter-current convection with reaction

Input data

Reference figures

Multi-component 1D counter-current convection with reaction: Reference figure 1 from code block 2Multi-component 1D counter-current convection with reaction: Reference figure 2 from code block 3

Convection-dispersion-reaction in a 1D reactor model

Input data

Reference figures

Convection-dispersion-reaction in a 1D reactor model: Reference figure 1 from code block 1Convection-dispersion-reaction in a 1D reactor model: Reference figure 2 from code block 2

Particle model: first order reaction

Input data

Numerical checks

Code block 1:

phi = 1.00,  eta_numerical = 0.9389,  eta_exact = 0.9391

Reference figures

Particle model: first order reaction: Reference figure 1 from code block 1Particle model: first order reaction: Reference figure 2 from code block 2

Weisz and Hicks model

Input data

Reference figures

Weisz and Hicks model: Reference figure 1 from code block 2

Counter-Current Column Processes

Input data

Numerical checks

Code block 2:

Gas outlet    (z=L): A=0.848, D=0.290
Liquid outlet (z=0): A=0.043, D=2.443, B=0.852, C=0.148

Reference figures

Counter-Current Column Processes: Reference figure 1 from code block 1Counter-Current Column Processes: Reference figure 2 from code block 2

Reactor Model for Heterogeneous Bubble Columns

Input data and modelling choices

The numerical values are those specified in the exercise: εb=0.096\varepsilon_b=0.096, εdf=0.135\varepsilon_{df}=0.135, εs=0.30\varepsilon_s=0.30, Ub=0.255 ms1U_b=0.255~\mathrm{m\,s^{-1}}, Udf=0.045 ms1U_{df}=0.045~\mathrm{m\,s^{-1}}, kLa,b=0.2 s1k_{La,b}=0.2~\mathrm{s^{-1}}, and kLa,df=1.2 s1k_{La,df}=1.2~\mathrm{s^{-1}}. The distribution coefficient for the RTD is m=3m=3.

The large-bubble dispersion is set to zero. The dense-bubble and slurry dispersions are numerical mixing parameters; Edf=Es=5 m2s1E_{df}=E_s=5~\mathrm{m^2\,s^{-1}} gives nearly well-mixed behavior without making the linear system ill-conditioned.

Key constants used in the reference run:

Numerical checks

Code block 2:

alpha_df = 0.122
alpha_s  = 0.782
inert large-bubble c range = 1.000000 to 1.000000
inert dense-bubble c range = 1.000000 to 1.000000
inert slurry c range       = 0.333333 to 0.333333
inert conversion           = 6.386e-13

Code block 3:

L= 5.0 m: mean RTD from step =   3.15 s

Code block 3:

L=15.0 m: mean RTD from step =  15.12 s

Code block 3:

L=30.0 m: mean RTD from step =  37.50 s

Code block 3:

k=0.03 1/s: outlet flux=0.2882, conversion=0.039
k=0.10 1/s: outlet flux=0.2640, conversion=0.120
k=0.30 1/s: outlet flux=0.2124, conversion=0.292
k=1.00 1/s: outlet flux=0.1257, conversion=0.581

Reference figures

Reactor Model for Heterogeneous Bubble Columns: Reference figure 1 from code block 2Reactor Model for Heterogeneous Bubble Columns: Reference figure 2 from code block 3

Hints and interpretation

The inert steady-state calculation is the strict conservation check. With k=0k=0, the gas phases remain at the inlet concentration and the slurry approaches the equilibrium value cs=cg/m=1/3c_s=c_g/m=1/3. The reported outlet conversion is therefore numerical roundoff, not a physical loss.

The RTD step responses reach one for every column height. The mean residence time increases with height because gas must repeatedly exchange with the well-mixed slurry holdup.

Kunii and Levenspiel Model for a ‘Fine Particle’ Fluidized Bed

Input data

Numerical checks

Code block 1:

Base bubble velocity U_b = 0.515 m/s
Base bubble fraction delta = 0.136
Base outlet conversion = 0.958
Conversion range over U/U_mf sweep = 0.760 to 0.984
Conversion range over d_b sweep = 0.765 to 0.996

Reference figures

Kunii and Levenspiel Model for a 'Fine Particle' Fluidized Bed: Reference figure 1 from code block 1

Hints and interpretation

The profile plot shows the expected ordering: the bubble phase has the highest concentration because it bypasses most of the catalyst, while the emulsion is most depleted. The base case is intentionally transfer-limited: db=4d_b=4 cm gives finite bubble-cloud and cloud-emulsion exchange, while k=2 s1k=2~\mathrm{s^{-1}} is fast enough that the emulsion can consume reactant faster than bubbles can replenish it.

The parameter study gives the chemically useful trends requested in the exercise:

Computing Residence Time Distributions

Input data

Numerical checks

Code block 2:

Mean residence time: 1.005 s  (expected 1.000 s)
Variance: 0.1095 s²
Fitted Péclet: 18.4  (set: 20.0)

Code block 3:

Moving/stagnant mean=1.554, variance=0.228

Reference figures

Computing Residence Time Distributions: Reference figure 1 from code block 1Computing Residence Time Distributions: Reference figure 2 from code block 3

The Westerterp Wave-Model for Axial Dispersion in Packed Beds

Input data and modelling choices

A step tracer input is imposed at the inlet and the cumulative RTD F(t)F(t) is computed from the outlet molar flux. The dimensionless Peclet number in the exercise is Pe=vR/DPe=vR/D. The aspect ratio is L/RL/R.

The numerical scheme is fully implicit in time. PyMRM constructs the upwind convection, diffusion, and divergence operators. The inlet uses the Danckwerts condition for the one-phase model and the analogous flux condition for each phase in the two-phase model.

Key constants used in the reference run:

Numerical checks

Code block 2:

Pe=50, L/R=100
CDR mean, variance      = 1.000, 0.0328
Wave mean, variance     = 1.000, 0.0327
Taylor-Aris Dax/D       = 53.1

Reference figures

The Westerterp Wave-Model for Axial Dispersion in Packed Beds: Reference figure 1 from code block 2The Westerterp Wave-Model for Axial Dispersion in Packed Beds: Reference figure 2 from code block 3

Hints and interpretation

Both step responses approach F=1F=1, so the injected tracer leaves the reactor. The dimensionless mean is close to one for both the one-phase and two-phase descriptions, which checks the outlet-flux normalization.

The one-phase and Westerterp models have similar first two moments for the base case. Their shapes are not identical: the two-phase model has a more convective character because material travels in two velocity classes and exchanges between them.

Modeling a Desiccant Dryer

Input data and modelling choices

The parameter values are those in the exercise: v=1.5 ms1v=1.5~\mathrm{m\,s^{-1}}, L=0.2 mL=0.2~\mathrm{m}, ε=0.8\varepsilon=0.8, ρg=1.2 kgm3\rho_g=1.2~\mathrm{kg\,m^{-3}}, Cp,g=1872 Jkg1K1C_{p,g}=1872~\mathrm{J\,kg^{-1}\,K^{-1}}, ρs=930 kgm3\rho_s=930~\mathrm{kg\,m^{-3}}, Cp,s=1340 Jkg1K1C_{p,s}=1340~\mathrm{J\,kg^{-1}\,K^{-1}}, and fds=0.8f_{ds}=0.8.

The bed is initially relatively dry and cool: wg=0.006w_g=0.006, T=300 KT=300~\mathrm{K}. The adsorption case uses the humid inlet wg,in=0.015w_{g,in}=0.015, Tin=307.7 KT_{in}=307.7~\mathrm{K}.

Key constants used in the reference run:

Numerical checks

Code block 2:

outlet humidity after 90 s   = 0.01218
inlet humidity               = 0.01500
temperature range after 90 s = 307.70 to 311.78 K
loading range after 90 s     = 0.114 to 0.157 kg/kg

Reference figures

Modeling a Desiccant Dryer: Reference figure 1 from code block 2Modeling a Desiccant Dryer: Reference figure 2 from code block 2

Hints and interpretation

The outlet humidity remains below the humid inlet after 90 s, so the bed is still adsorbing water. The temperature rises above the inlet temperature in the adsorption zone because the conserved enthalpy contains the negative sorption term; adsorption releases heat into the gas-solid matrix.

A useful numerical check is that the explicit convective update is applied to the fluxes, while the nonlinear accumulation relation is solved implicitly at every grid cell. This is the formulation requested in the exercise.

Axial Convection with Radial Dispersion

Input data

Numerical checks

Code block 1:

Outlet cup-mixing conversion: 1.000
Outlet Sherwood number: 5.765
Graetz/Nusselt asymptote for plug flow and c_wall=0: 5.783

Code block 2:

Developed Sherwood number: 5.7646
Relative error versus 5.783: 0.32%

Reference figures

Axial Convection with Radial Dispersion: Reference figure 1 from code block 1Axial Convection with Radial Dispersion: Reference figure 2 from code block 2

Hints and interpretation

This is the classical plug-flow Graetz-Nusselt limit with a constant-concentration wall. The computed Sherwood number approaches 5.783, the first-eigenvalue result for uniform axial velocity in a circular tube with c(R)=0c(R)=0.

The radial profiles show the developing concentration boundary layer. Near the inlet only the wall region is depleted; farther downstream the wall sink has affected the whole cross-section and the profile shape approaches the first Bessel eigenfunction. The outlet conversion is therefore controlled by radial diffusion to the wall, not by a volumetric first-order rate constant.

The correct centreline boundary condition is symmetry, c/r=0\partial c/\partial r=0. The wall boundary condition for the infinitely fast surface reaction is Dirichlet, c(R)=0c(R)=0; a finite-rate surface reaction would instead use a Robin condition, but that is a different model.

Diffusion-Reaction in a Cylindrical Pore

Input data

Numerical checks

Code block 2:

min(c/c0) = 2.521e-07
max(c/c0) = 0.982
area-averaged c/c0 near mouth = 0.919
area-averaged c/c0 at closed end = 8.331e-06
wall consumption rate per pore = 2.028e-10 mol/s for c0 = 1 mol/m3
inlet flux / wall consumption = 1.000000

Reference figures

Diffusion-Reaction in a Cylindrical Pore: Reference figure 1 from code block 2Diffusion-Reaction in a Cylindrical Pore: Reference figure 2 from code block 2

Hints and interpretation

The finite-volume balance closes: the inlet flux equals the integrated wall consumption to numerical precision. The zero-gradient condition at the closed end also gives zero axial flux there.

A useful physical check is the axial penetration length. With an absorbing cylindrical wall, the slowest radial eigenmode has a length scale of order R/2.4050.42 μmR/2.405 \approx 0.42~\mu\mathrm{m}. Since the pore is 5 μm5~\mu\mathrm{m} long, most reactant is consumed close to the entrance and very little reaches the closed end. The numerical solution shows exactly this behavior.

2D Membrane Fixed Bed Reactor Model

Input data and modelling choices

The model uses the values in the exercise: De,r=104 m2s1D_{e,r}=10^{-4}~\mathrm{m^2\,s^{-1}}, U0=0.2 ms1U_0=0.2~\mathrm{m\,s^{-1}}, R=0.02 mR=0.02~\mathrm{m}, L=1.0 mL=1.0~\mathrm{m}, kf=kb=0.1 m3mol1s1k_f=k_b=0.1~\mathrm{m^3\,mol^{-1}\,s^{-1}}, cA,in=cB,in=10 molm3c_{A,in}=c_{B,in}=10~\mathrm{mol\,m^{-3}}, and cC,in=cD,in=0c_{C,in}=c_{D,in}=0.

For the stoichiometric inlet and K=kf/kb=1K=k_f/k_b=1, the thermodynamic equilibrium conversion is Xeq=0.5X_{eq}=0.5.

Key constants used in the reference run:

Numerical checks

Code block 2:

thermodynamic equilibrium conversion = 0.500

Code block 2:

km=     0 m/s: X_A=0.500, outlet [A,B,C,D]=5.000, 5.000, 5.000, 5.000
km=  0.01 m/s: X_A=0.698, outlet [A,B,C,D]=3.018, 3.018, 0.833, 6.982
km=   0.1 m/s: X_A=0.775, outlet [A,B,C,D]=2.251, 2.251, 0.233, 7.749
km=     1 m/s: X_A=0.784, outlet [A,B,C,D]=2.160, 2.160, 0.187, 7.840
km=    10 m/s: X_A=0.785, outlet [A,B,C,D]=2.151, 2.151, 0.182, 7.849
km=   100 m/s: X_A=0.785, outlet [A,B,C,D]=2.150, 2.150, 0.182, 7.850

Code block 3:

D_er = 1e-04 m2/s
  km=     0: X_A=0.500, outlet C wall/center=5.000/5.000

Code block 3:

km=  0.01: X_A=0.698, outlet C wall/center=0.578/1.091
  km=   0.1: X_A=0.775, outlet C wall/center=0.051/0.417

Code block 3:

km=     1: X_A=0.784, outlet C wall/center=0.013/0.360
  km=    10: X_A=0.785, outlet C wall/center=0.010/0.355

Code block 3:

km=   100: X_A=0.785, outlet C wall/center=0.010/0.354
D_er = 1e-05 m2/s
  km=     0: X_A=0.500, outlet C wall/center=5.000/5.000

Code block 3:

km=  0.01: X_A=0.601, outlet C wall/center=0.577/4.326
  km=   0.1: X_A=0.621, outlet C wall/center=0.165/4.171

Code block 3:

km=     1: X_A=0.623, outlet C wall/center=0.122/4.152
  km=    10: X_A=0.623, outlet C wall/center=0.118/4.151

Code block 3:

km=   100: X_A=0.623, outlet C wall/center=0.118/4.150

Reference figures

2D Membrane Fixed Bed Reactor Model: Reference figure 1 from code block 22D Membrane Fixed Bed Reactor Model: Reference figure 2 from code block 3

Hints and interpretation

For km=0k_m=0, the outlet conversion approaches the thermodynamic equilibrium value Xeq=0.5X_{eq}=0.5 and the outlet concentrations satisfy ABCD5 molm3A\approx B\approx C\approx D\approx5~\mathrm{mol\,m^{-3}}. This is the main check that the reversible reaction stoichiometry and signs are correct.

When km>0k_m>0, only component CC develops a wall gradient and only CC is removed through the boundary condition. Component DD remains in the reactor, so the conversion increase is finite rather than complete.

Steady-state 2D fixed bed reactor model: first order exothermal reaction

Input data

Numerical checks

Code block 1:

Adiabatic temperature rise for full conversion: 64.0 K
Maximum centreline temperature: 533.5 K
Outlet area-average conversion: 0.854

Code block 2:

1D adiabatic outlet temperature: 584.0 K
2D outlet area-average temperature: 503.7 K
2D outlet wall temperature: 500.8 K

Reference figures

Steady-state 2D fixed bed reactor model: first order exothermal reaction: Reference figure 1 from code block 1Steady-state 2D fixed bed reactor model: first order exothermal reaction: Reference figure 2 from code block 2

A 2D Gas-Solid Fluidized Bed

Input data and modelling choices

The bed radius is 1.0 m1.0~\mathrm{m} and the expanded bed height is 3.0 m3.0~\mathrm{m}. The model uses the parameter values from the exercise: U0=0.50 ms1\langle U_0\rangle=0.50~\mathrm{m\,s^{-1}}, Dr=0.01 m2s1D_r=0.01~\mathrm{m^2\,s^{-1}}, Kr,1=0.080 s1K_{r,1}=0.080~\mathrm{s^{-1}}, Kr,2=0.010 s1K_{r,2}=0.010~\mathrm{s^{-1}}, Kbc=2.5 s1K_{bc}=2.5~\mathrm{s^{-1}}, Kce=1.5 s1K_{ce}=1.5~\mathrm{s^{-1}}, and γb=0.005\gamma_b=0.005, γc=0.200\gamma_c=0.200, γe=5.000\gamma_e=5.000.

The concentration array has shape (n_r, n_c), with species ordered as A, B, C. The axial coordinate is the integration variable in a method-of-lines solve.

Key constants used in the reference run:

Numerical checks

Code block 1:

2D radial-dispersion model
  flow-averaged outlet A, B, C = 1.1548, 2.9778, 0.8675 mol/m3
  conversion of A = 0.769047
  selectivity to B = 0.774408
Uniform plug-flow reference
  conversion of A = 0.827936
  selectivity to B = 0.788523

Reference figures

A 2D Gas-Solid Fluidized Bed: Reference figure 1 from code block 2A 2D Gas-Solid Fluidized Bed: Reference figure 2 from code block 2A 2D Gas-Solid Fluidized Bed: Reference figure 3 from code block 2

Hints and interpretation

The uniform-velocity/no-radial-dispersion case reproduces the old MTO tutorial answer. The computed values are

XA0.82794,SB0.78852,X_A \approx 0.82794,\qquad S_B \approx 0.78852,

matching the listed plug-flow reference values XA=0.827934X_A=0.827934 and SB=0.788524S_B=0.788524. This validates the phase coupling and reaction terms independently of the radial dispersion calculation.

The 2D case uses the same phase model but adds radial dispersion and the parabolic bubble velocity profile. Outlet conversion and selectivity must be based on cup-mixing averages:

Φ=0R2πrU0(r)Φ(r)dr0R2πrU0(r)dr.\langle \Phi \rangle = \frac{\int_0^R 2\pi r U_0(r)\Phi(r)\,dr} {\int_0^R 2\pi r U_0(r)\,dr}.

A 2D Bubble Column Model

Input data and modelling choices

The column data are taken from the exercise statement:

εG(r)=0.250.18rR,vL(r)=vL,0(1r0.7R),\varepsilon_G(r)=0.25-0.18\frac{r}{R},\qquad v_L(r)=v_{L,0}\left(1-\frac{r}{0.7R}\right),
Dax=200 cm2 s1+300 cm2 s1rR,Drad=40 cm2 s1.D_{ax}=200~\mathrm{cm^2~s^{-1}}+300~\mathrm{cm^2~s^{-1}}\frac{r}{R}, \qquad D_{rad}=40~\mathrm{cm^2~s^{-1}}.

The values of vL,0v_{L,0} and ΔvGL\Delta v_{GL} are determined from the two superficial-flow constraints:

UL=2R20RεLvLrdr,UG=2R20RεG(vL+ΔvGL)rdr.U_L=\frac{2}{R^2}\int_0^R \varepsilon_L v_L r\,dr, \qquad U_G=\frac{2}{R^2}\int_0^R \varepsilon_G (v_L+\Delta v_{GL}) r\,dr.

Key constants used in the reference run:

Numerical checks

Code block 2:

average gas holdup      = 0.130
average liquid holdup   = 0.870
v_L0                    = 0.363 m/s
Delta v_GL              = 0.712 m/s
middle liquid velocity  = -0.145 to 0.353 m/s
middle gas velocity     = 0.406 to 1.356 m/s

Code block 3:

insoluble liquid conversion = 8.687e-12
insoluble gas conversion    = 1.632e-13
liquid concentration range  = 1.000 to 1.000
gas concentration range     = 1.000 to 1.000

Code block 4:

liquid residence time eps_L H/U_L = 165.3 s
gas residence time eps_G H/U_G    = 2.47 s
liquid conversion at k=0.05 1/s  = 0.660
gas conversion at k=0.05 1/s     = 0.104

Code block 5:

soluble gas conversion          = 0.306
gas concentration range         = 0.694 to 0.998 mol/m3
liquid concentration range      = 0.001 to 0.155 mol/m3
outlet centre/wall liquid c     = 0.155, 0.155 mol/m3

Reference figures

A 2D Bubble Column Model: Reference figure 1 from code block 2A 2D Bubble Column Model: Reference figure 2 from code block 3A 2D Bubble Column Model: Reference figure 3 from code block 4A 2D Bubble Column Model: Reference figure 4 from code block 5

Hints and interpretation

The insoluble tracer is the main conservation check. With kLa=0k_La=0 and no reaction, both phase concentrations should remain at the inlet value and the outlet conversion should be near zero. This is a strict check on the phase-continuity closure: changing the axial profile between the end zones and the middle section requires a compensating radial convective flux.

The computed values of vL,0v_{L,0} and ΔvGL\Delta v_{GL} satisfy the prescribed superficial flow constraints by construction. The middle liquid velocity is negative near the wall, which is essential: without that downflow the model does not represent the circulation pattern in the exercise.

The reaction comparisons are not expected to coincide exactly with ideal PFR or CSTR curves. The 2D column contains radial nonuniformity, recirculation, and highly diffusive end zones.

Taylor Dispersion

Input data and modelling choices

The parameter set is chosen so that Taylor dispersion is visible on the length and time scale of the simulation. The radial Peclet number is about 100, which gives DT/Dm209D_\mathrm{T}/D_m\approx 209. The pulse is initially placed well inside the tube rather than injected at the inlet; this avoids start-up boundary artefacts and makes the outlet signal a residence-time response for the remaining distance to the outlet.

The time step is chosen so that the Courant number based on the maximum centreline velocity remains moderate. For the implicit upwind scheme this is an accuracy and temporal-resolution choice, not a strict stability condition:

Co=vmaxΔtΔz0.4.\mathrm{Co}=\frac{v_\mathrm{max}\Delta t}{\Delta z}\approx 0.4.

Key constants used in the reference run:

Numerical checks

Code block 3:

radial Peclet number Pe_r       = 100.0
Taylor-Aris D_T / D_m           = 209.3
radial mixing time R^2/(4D_m)   = 6.25 s
Courant number Co               = 0.400
outlet amount recovered         = 1.010
2D RTD mean and std             = 42.72 s, 7.24 s
1D Taylor-Aris mean and std     = 42.27 s, 6.33 s

Code block 4:

at t = 20 s:
mean z, 2D / Taylor-Aris       = 0.5510 m / 0.5500 m
variance, 2D / Taylor-Aris     = 0.01130 m^2 / 0.00900 m^2
apparent axial dispersion      = 2.67e-04 m^2/s
Taylor-Aris dispersion         = 2.09e-04 m^2/s
molecular diffusivity          = 1.00e-06 m^2/s

Reference figures

Taylor Dispersion: Reference figure 1 from code block 2Taylor Dispersion: Reference figure 2 from code block 2Taylor Dispersion: Reference figure 3 from code block 3

Hints and interpretation

Two simple checks are useful here.

First, the convection operator is included in the implicit time-step matrix. The Courant number printed above is therefore used as a temporal-resolution check. A value of about 0.4 keeps the pulse motion well resolved relative to the axial grid.

Second, before the pulse reaches the outlet, the axial mean and variance of the cross-sectionally averaged concentration can be compared with the Taylor-Aris long-time prediction:

zˉ(t)z0+vˉt,σz2(t)σz,02+2DTt.\bar{z}(t)\approx z_0+\bar{v}t, \qquad \sigma_z^2(t)\approx \sigma_{z,0}^2+2D_\mathrm{T}t.

The variance comparison is not exact because the numerical upwind flux adds some axial numerical dispersion. The important check is that the mean moves at the imposed mean velocity and the inferred dispersion is of the same order as DTD_\mathrm{T}, not DmD_m.

Ternary Diffusion with Maxwell-Stefan Equations

Input data

Hints and interpretation

The mole-fraction profiles are mildly curved because the Maxwell-Stefan resistance matrix depends on local composition. Helium’s high binary diffusivity changes the O2 and N2 fluxes through the off-diagonal terms; treating each species with an independent Fickian diffusivity would miss this coupling.

The flux panel is the validation check. The independent fluxes are constant through the domain to numerical precision, which is the steady-state conservation requirement. The chosen boundary compositions create large enough gradients to make cross-diffusion visible while keeping all mole fractions comfortably between zero and one.

Dehydrogenation of Ethanol

Input data

Numerical checks

Code block 1:

Wilke effective diffusivities [m²/s]:
  D_eff,1 = 4.412e-06
  D_eff,2 = 3.818e-06
  D_eff,3 = 1.371e-05

Code block 3:

{'direct': '0.3226', 'matrix': '0.3241', 'linear': '0.3224', 'mass avg': '0.4121'}

Reference figures

Dehydrogenation of Ethanol: Reference figure 1 from code block 2Dehydrogenation of Ethanol: Reference figure 2 from code block 3

Mass Transfer Limitations Using Maxwell-Stefan Equations

Input data

Numerical checks

Code block 2:

Outlet c_A (bulk):    19.036 mol/m³  (53.6% conversion)
Outlet temperature:   373.4 K

Code block 3:

Max |Δc_A| between cases: 32.0602 mol/m³
Max |ΔT|  between cases:  117.1480 K
(Both should be small when MT resistance is negligible)

Code block 4:

O2  flux: 1.592 mol m⁻² s⁻¹
CO2 flux: -1.034 mol m⁻² s⁻¹
Flux conservation check (max ptp): 2.31e-14

Reference figures

Mass Transfer Limitations Using Maxwell-Stefan Equations: Reference figure 1 from code block 2Mass Transfer Limitations Using Maxwell-Stefan Equations: Reference figure 2 from code block 3Mass Transfer Limitations Using Maxwell-Stefan Equations: Reference figure 3 from code block 4

Coupled Batch Reactor and Particle Model

Input data

Reference figures

Coupled Batch Reactor and Particle Model: Reference figure 1 from code block 1Coupled Batch Reactor and Particle Model: Reference figure 2 from code block 2

Particle Model Coupled to Column Model

Input data

Reference figures

Particle Model Coupled to Column Model: Reference figure 1 from code block 1Particle Model Coupled to Column Model: Reference figure 2 from code block 2

Pressure-velocity coupling in column models

Input data

Hints and interpretation

The model shows the expected coupling. As A reacts to two product moles, the total molar flux increases. The exothermic heat release raises the temperature, and the pressure drop lowers the total gas concentration. All three effects increase the superficial velocity downstream.

The Ergun pressure drop remains moderate for the chosen 3 mm particles and 0.5 m/s inlet velocity. This is intentional: the pressure profile is large enough to see in the plot while keeping the ideal-gas packed-bed model in a physically sensible range. The parameter choice is consistent with standard packed-bed reactor modeling practice, where Ergun hydrodynamics are coupled to plug-flow material and energy balances.

Solution: Exercise Result Checks

Input data

Use the values stated in the exercise. The reference figures below give the expected scale and trends for those values.

Pressure-Velocity Coupling in a 2D Fixed-Bed Reactor

Input data and modelling choices

Use the base settings in L8_pressure_velocity.ipynb: n_z=100, n_r=30, radius=0.006 m, wall heat-transfer coefficient 20 W m^-2 K^-1, radial diffusivity 5.0e-5 m^2/s, and radial thermal conductivity 0.035 W m^-1 K^-1.

Numerical checks

1D outlet conversion A         = 1.000
1D outlet temperature          = 443.0 K
1D outlet velocity             = 6.048 m/s
2D outlet temperature          = 434.5 K
2D outlet velocity             = 6.006 m/s
2D pressure drop               = 8.77 Pa
maximum radial temperature span = 71.8 K

Hints and interpretation

The wall-cooled 2D model has a lower outlet temperature than the 1D reference while keeping nearly complete conversion. The radial temperature and concentration spans are the main signs that the 2D model is doing something the 1D cup-mixing model cannot represent.

Reactor-Particle Coupling

Input data and modelling choices

Use the reactor and particle parameters in L8_reactor_particle_coupling.ipynb. The useful validation is qualitative: the coupled model must predict lower bulk concentration downstream and lower particle-center concentration than particle-surface concentration when intraparticle diffusion limits the rate.

Hints and interpretation

Explicit coupling should approach the implicit result only after iteration. If explicit coupling gives an outlet conversion that changes strongly with the relaxation factor or iteration count, the coupling is too strong for a single-pass update.

2D Boundary Surface-Reaction Coupling

Input data and modelling choices

Use the base settings in L8_surface_reaction_2D_boundary_coupling.ipynb and integrate to t=1.0 s.

Numerical checks

final step residual norm           = 3.66e-13
outlet A average                   = 0.170
outlet B average                   = 0.0127
weighted site-balance error        = 4.44e-16
bulk concentrations nonnegative    = True
surface coverages nonnegative      = True

Hints and interpretation

The strictest check is the surface-site balance. The coverages should remain non-negative and the weighted sum of occupied and vacant sites should remain one to roundoff.

Monolithic 2D Membrane Module

Input data and modelling choices

Use the base case in L8_simple_monolithic_membrane_module.ipynb: length=0.20 m, D=1.0e-4 m^2/s, P=2.0e-3 m/s, retentate and permeate velocities 0.1 m/s, and 100 axial by 30+30 radial cells.

Numerical checks

residual norm              = 2.48e-11
retentate outlet average   = 0.4568
permeate outlet average    = 0.7246
integrated membrane rate   = 4.272e-06 mol/s
mass-balance error         = 1.28e-12
minimum concentration      = 7.72e-03

Hints and interpretation

The membrane flux should be from retentate to permeate everywhere in the base case. The total retentate-plus-permeate molar flow is conserved even though each side separately gains or loses material through the membrane.

Reactor-Particle Coupling with Maxwell-Stefan Film Transfer

Input data and modelling choices

Use the base settings in L8_reactor_particle_maxwell_stefan_coupling.ipynb: 40 axial cells, 14 particle radial cells, reactor length 1.0 m, velocity 0.30 m/s, particle radius 1.0 mm, solid holdup 0.35, and reaction rate constant 3.0 s^-1.

Numerical checks

Newton iterations                    = 5
minimum concentration                = 0.04295 mol/m3
outlet A conversion                  = 0.8558
outlet gas c_A                       = 0.1380 mol/m3
outlet boundary c_A                  = 0.0930 mol/m3
monolithic residual norm             = 3.14e-12
film residual norm                   = 1.39e-16
particle residual norm               = 3.20e-12

Hints and interpretation

The particle boundary concentration of A should be lower than the gas concentration where A is consumed in the particle. The film residual must be small at convergence; otherwise the gas-particle boundary values are not consistent with the Maxwell-Stefan film law.