V-RX-01 — two-step series chain A→B→C, isothermal

Tags: kinetics, multi_step, isothermal

References:

  • FDS Verification Guide two_step_solid_reaction
  • Lautenberger dissertation (2007) §3.4.4

Problem statement

Identical problem in FDS (two_step_solid_reaction) and Gpyro §3.4.4: constant rates k₁ = 0.389 s⁻¹, k₂ = 0.262 s⁻¹ (published values, so numbers are cross-checkable against both codes), isothermal, exact Bateman solution in exact/kinetics.jl.

Exercises multi-step ReactionSet coupling: intermediate B is produced by reaction 1 and consumed by reaction 2 SIMULTANEOUSLY (the existing isothermal test is single-step).

Setup notes (solver conventions that would corrupt the case):

  • constant rates realized as E = 0 (rate = A exactly, independent of T, so the Dirichlet-pinned temperature field cannot perturb the kinetics);
  • depletion limiter DISABLED (tanh roll-off below ~1 kg/m³ would distort the late decay: ξ_A < 1 kg/m³ for t > ln(ξ₀)/k₁ ≈ 17.8 s);
  • temperature gates left at defaults (fully open);
  • h = 0 on both reactions keeps the single cell exactly isothermal.

Quantities of interest (n = 1)

QoIvalueexacterrortolerancewithin tolprovenance
max relative ξ_A error1.254e-091.254e-091e-08yesBateman solution, k₁=0.389, k₂=0.262 (FDS/Gpyro values)
max relative ξ_B error2.777e-092.777e-091e-08yesBateman solution, k₁=0.389, k₂=0.262 (FDS/Gpyro values)
max relative ξ_C error1.523e-091.523e-091e-08yesBateman solution, k₁=0.389, k₂=0.262 (FDS/Gpyro values)
total-mass conservation (closed chain)5.684e-165.684e-161e-13yesΣξ must equal ξ₀; unit yields
isothermality drift5.684e-145.684e-141e-12yesh = 0 both reactions; Dirichlet-pinned single cell

V-RX-01 xi_histories

V-RX-01 xi_histories_error

Comparison with other codes

The same case was solved with FDS 6.11.0 at 1 solid cell and Gpyro 0.8200 at 0D; decks, outputs, and run provenance are committed under test/verification/reference/. Each code's error against the same exact solution is drawn below on a log scale, muted gray behind this solver's series — the signed linear-scale panel above shows where the error lives, this one compares magnitudes across codes.

V-RX-01 xi_histories_vs_codes_error

Wall times at every ladder rung against the reference runs. Resolutions and simulated spans differ where noted (details in reference/timings.csv), so cross-code timings are indicative rather than a controlled benchmark; rungs at a matched resolution are directly comparable.

V-RX-01 solve_time

Solution overlays including the other codes' points: xihistoriesvs_codes.

Solver configuration

settingvalue
integratorKenCarp4 (default)
abstol1.0e-12
reltol1.0e-10