V-MMS-01 — manufactured solution, coupled kinetics + T-props + gas transport

Tags: mms, coupled, kinetics, gas_transport, order_verification

References:

  • Roache, Verification and Validation in Computational Science (MMS methodology)
  • docs/src/guide/technicalreference/18verification-validation.md §18.2 (the documented gap)
  • FDS Verification Guide (MMS usage precedent, fluid phase)

Problem statement

Method of Manufactured Solutions over the coupled energy + kinetics + gas transport operators — the only formal order-of-accuracy verification of the coupled system (every other case has zero residual source; tech ref §18.2 documents this gap; FDS uses MMS for the same reason in the fluid phase).

Active couplings, all with O(1) contributions over the space–time domain:

  • T-dependent k(T), c(T) on both condensed components (mixture rules live, composition varying in z and t);
  • two-step kinetics A → 0.65 B + 0.35 gas (endothermic) and B → gas (exothermic): intermediate B produced and consumed, reaction heat feeding back into the energy equation, gas produced into the transport field;
  • Fickian gas transport in the ThermaKin volume-fraction-gradient form J = −(λeff/T)∂z(ξT), with per-component λ so λeff is state-dependent;
  • gas-advection energy source Sconv = −cpg·J·∂zT;
  • manufactured Neumann BCs (HeatFluxBC/MassFluxBC callables of t) — the Dirichlet face reconstruction is first-order and would cap the observed order (see exact/mms.jl header, design decision 3).

The manufactured sources are assembled by nested ForwardDiff through the package's own property/kinetics functions (exact/mms.jl), injected at the state-derivative level so the analytic Structured Jacobian remains exact — this case runs with the DirectSolve Jacobian attached (its agreement with colored FD is asserted in the driver self-tests).

The depletion limiter is left at the material default: the source generator evaluates the identical rate law, and every reactant concentration stays

20× the 1 kg/m³ threshold, where the tanh factor is exactly 1.0 in

Float64. Temperature gates are at defaults (fully open).

Fields (z̃ = z/L, smooth, strictly positive concentrations): T* = 500 + 150·sin(πz̃)·cos(ωt) + 50·z̃ [K] (≈ 350–700 K) ξ_A = 350 + 80·z̃²·e^(−t/τ) [kg/m³] ξB = 220 + 60·(1−z̃)²·(1 − 0.5·e^(−t/τ)) [kg/m³] ξ*g = 1.2 + 0.5·sin(πz̃)·(1 + 0.3·sin(ωt)) [kg/m³]

Quantities of interest (n = 320)

QoIvalueexacterrortolerancewithin tolprovenance
L∞ T error, t=10.0 s0.0002540.0002540.05yesmanufactured T* recovered on the coupled system; observed 0.0163/0.0124 K at t=10/20 s
L∞ T error, t=20.0 s0.00021740.00021740.05yesmanufactured T* recovered on the coupled system; observed 0.0163/0.0124 K at t=10/20 s
relative L∞ ξ_A error, t=20.0 s1.061e-061.061e-060.0002yesscale = manufactured baseline; observed 6.8e-5; L∞ ξ orders ≈ 2.0 on [20,40,80] at pin time
relative L∞ ξ_B error, t=20.0 s3.397e-073.397e-070.0001yesscale = manufactured baseline; observed 2.2e-5; L∞ ξ orders ≈ 2.0 on [20,40,80] at pin time
relative L∞ ξ_gas error, t=20.0 s0.00015360.00015360.03yesscale = manufactured baseline; observed 9.8e-3; L∞ ξ orders ≈ 2.0 on [20,40,80] at pin time

V-MMS-01 T_profiles

V-MMS-01 T_profiles_error

V-MMS-01 xi_profiles

V-MMS-01 xi_profiles_error

V-MMS-01 xi_gas_profile

V-MMS-01 xi_gas_profile_error

V-MMS-01 error_profiles

V-MMS-01 convergence

V-MMS-01 convergence_dt

Convergence

n_cellshwall (s)L2_TLinf_T
200.050.17090.026580.04328
400.0251.7020.0067380.01243
800.01250.61560.0016920.003316
1600.006251.0920.00042390.0008554
3200.0031252.4040.00010620.0002174

Observed order 1.992 (L2_T), expected 2.0.

Solver configuration

settingvalue
integratorKenCarp4 (default)
abstol1.0e-11
reltol1.0e-9