<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Numerical Methods on Harry's Personal Site</title><link>https://harryzhou2000.github.io/hugo-harry/tags/numerical-methods/</link><description>Recent content in Numerical Methods on Harry's Personal Site</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Mon, 19 Oct 2026 14:20:00 +0800</lastBuildDate><atom:link href="https://harryzhou2000.github.io/hugo-harry/tags/numerical-methods/index.xml" rel="self" type="application/rss+xml"/><item><title>Limited Variational Reconstruction: contacts, weak shocks, and the cost of a high-order target</title><link>https://harryzhou2000.github.io/hugo-harry/p/lvr-research-summary-2026/</link><pubDate>Mon, 19 Oct 2026 14:20:00 +0800</pubDate><guid>https://harryzhou2000.github.io/hugo-harry/p/lvr-research-summary-2026/</guid><description>&lt;img src="https://harryzhou2000.github.io/hugo-harry/p/lvr-research-summary-2026/cover.png" alt="Featured image of post Limited Variational Reconstruction: contacts, weak shocks, and the cost of a high-order target" />&lt;p>The &lt;a class="link" href="https://harryzhou2000.github.io/hugo-harry/p/limited-variational-reconstruction-v2/" target="_blank" rel="noopener"
>earlier LVR v2 post&lt;/a> introduced a selective penalty that stabilizes high-order reconstruction near shocks. This follow-up brings together the subsequent research: a density-sensitive branch for steep contacts, an experimental weak-shock branch, completed two-dimensional comparisons, and a trial of high-order penalty targets. The main conclusion is a trade-off, not a single method that wins every case.&lt;/p>
&lt;p>The synthesis here reflects results available through October 19, 2026. In the completed studies, the limited second-order (O2) target remains the reference choice. A newer high-order target improves several one-dimensional profiles but has not retained the O2-target method&amp;rsquo;s convergence advantage.&lt;/p>
&lt;h2 id="the-common-reconstruction-idea">&lt;a href="#the-common-reconstruction-idea" class="header-anchor">&lt;/a>The common reconstruction idea
&lt;/h2>&lt;p>Let \(c_i\) contain the nonconstant polynomial coefficients reconstructed in cell \(i\), and let \(c_i^{O2}\) be a limited O2 polynomial embedded in the same basis. LVR adds a cell-local penalty toward that target:&lt;/p>
$$
\frac{\lambda_i}{2}(c_i-c_i^{O2})^T A_i(c_i-c_i^{O2}),
\qquad
\alpha_i=\frac{\lambda_i}{1+\lambda_i}\in[0,1].
$$&lt;p>Here \(A_i\) is the existing local variational-reconstruction block. For a fixed target and gate, its block update is a blend of the ordinary variational update and \(c_i^{O2}\), with weights \(1-\alpha_i\) and \(\alpha_i\). The gate is built from the evolving cell means, but the reconstruction solve remains linear in the unknown high-order coefficients. At zero gate the original high-order reconstruction is recovered; at unit gate the local update returns the O2 target. This is a penalty &lt;strong>inside&lt;/strong> reconstruction, not a limiter applied afterward.&lt;/p>
&lt;p>The successive versions differ mainly in where they apply that blend:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Version&lt;/th>
&lt;th>Added sensing mechanism&lt;/th>
&lt;th>Main lesson&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Initial LVR&lt;/td>
&lt;td>Pressure jump and compression&lt;/td>
&lt;td>Selective limiting can stabilize the shock while retaining high order elsewhere.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>LVR v2&lt;/td>
&lt;td>Supported pressure-extremum correction&lt;/td>
&lt;td>Repairs a weakly gated shoulder beside a strong shock.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>LVR v3, also called Average H2&lt;/td>
&lt;td>Separate density-extremum correction&lt;/td>
&lt;td>Handles steep advected contacts much better, with cap-dependent trade-offs.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Experimental weak G1&lt;/td>
&lt;td>Pressure-gradient consistency and compression&lt;/td>
&lt;td>Suppresses isolated weak-shock ringing in 1-D when held within each implicit stage.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>The familiar v2 Lax result remains a useful point of departure: its wrong-direction pressure excursion fell from 0.11452 in the matched v1 run to 0.006859, while the density \(L_1\) error changed only slightly (0.004208 to 0.004284). The correction addresses a local defect rather than uniformly lowering every error norm.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/v2-shock-shoulder.png"
width="1924"
height="1710"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/v2-shock-shoulder_hu1478564709255345773.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/v2-shock-shoulder_hu11445097504228106430.png 1024w"
loading="lazy"
alt="Matched Lax profiles comparing the original shock gate with the pressure-extremum correction"
class="gallery-image"
data-flex-grow="112"
data-flex-basis="270px"
>&lt;/p>
&lt;p>&lt;em>The v1/v2 Lax comparison shows why a shock sensor needs support beyond its strongest face: v2 suppresses the spurious pre-shock shoulder while preserving the main discontinuity. Curves are evolved cell averages, not reconstructed point values.&lt;/em>&lt;/p>
&lt;h2 id="steep-contacts-need-a-different-signal">&lt;a href="#steep-contacts-need-a-different-signal" class="header-anchor">&lt;/a>Steep contacts need a different signal
&lt;/h2>&lt;p>A pressure/compression gate can be quiet at a density contact. The v3 branch therefore measures the normalized density jump across faces and uses nearby cell-mean density extrema to support a narrow correction. Its shock and contact penalties are combined by&lt;/p>
$$
\alpha_i=\max(\alpha_{s,i},\alpha_{c,i}),
$$&lt;p>where \(s\) and \(c\) denote the shock and density branches. Two neighbour-expansion passes act on accepted density-extremum seeds; the whole contact region is not expanded indiscriminately. The two caps quoted below are ordered as &lt;strong>(shock, contact)&lt;/strong>.&lt;/p>
&lt;p>In the advected 10:1 contact, the mixed-cap v3 run \((0.5,1)\) reduces global density overshoot from about 0.733 for shock-only v2 to 0.03395. This does not make v3 universally preferable: the same mixed-cap series increases Toro 123 near-vacuum density \(L_1\) error from 0.004974 to 0.006655. Stronger density treatment also has a width cost. A three-pass contact variant is more bounded in the contact tests but spreads the correction farther.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/contact-profiles.png"
width="2640"
height="2023"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/contact-profiles_hu10805862998532703046.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/contact-profiles_hu3363396183855878963.png 1024w"
loading="lazy"
alt="Shock-region and advected-contact density profiles under different contact sensors"
class="gallery-image"
data-flex-grow="130"
data-flex-basis="313px"
>&lt;/p>
&lt;p>&lt;em>The top panels test whether the density correction disturbs Lax, Sod, or two-shock regions; the lower panels show advected 2:1, 10:1, and 100:1 contacts. Mean-supported v3 markedly reduces ringing at steep contacts. The WENO curves are complete-scheme context, not a reconstruction-only comparison, because their flux and time integrator differ.&lt;/em>&lt;/p>
&lt;p>The later cap study retained \((0.5,0.5)\) and \((1,1)\) as candidates. For the 10:1 contact, their overshoots are 0.06090 and 0.03395, respectively. On the fixed-budget Mach-20 cylinder, the stronger shock cap improves the final absolute density residual from \(6.90\times10^{-5}\) to \(8.38\times10^{-8}\), although its nearest-wall density moves slightly farther from the ideal stagnation-point value. Larger caps also increase some discontinuity-dominated errors, notably in Toro 123 and Shu–Osher. The historical mixed pair remains evidence, not the selected next setting.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/cylinder-cap-pairs.png"
width="3731"
height="1402"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/cylinder-cap-pairs_hu15344968447442618580.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/cylinder-cap-pairs_hu3027542497461499611.png 1024w"
loading="lazy"
alt="Cylinder profile and residual histories for the symmetric v3 cap pairs"
class="gallery-image"
data-flex-grow="266"
data-flex-basis="638px"
>&lt;/p>
&lt;p>&lt;em>The steady cylinder comparison isolates an important trade-off: the unit-cap v3 case drives the residual much lower within the same iteration budget, but the near-wall density profile is not uniformly improved. A low residual and a locally accurate wall value are different tests.&lt;/em>&lt;/p>
&lt;h2 id="what-survives-in-two-dimensions">&lt;a href="#what-survives-in-two-dimensions" class="header-anchor">&lt;/a>What survives in two dimensions?
&lt;/h2>&lt;p>Completed double-Mach-reflection and four-state Riemann runs show that v3 can stay selective while retaining resolved two-dimensional structures. On the diagonally symmetric 246U4S Riemann mesh, all six tested methods reached \(t=0.8\) with finite positive density and pressure. V2 and v3 \((0.5,0.5)\) are almost indistinguishable in the final density view. V3 \((1,1)\) changes the roll-up pattern and reduces the measured density symmetry defect relative to v2, without flattening the flow to the smoother O2 result.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>246U4S method&lt;/th>
&lt;th style="text-align: right">Final density min / max&lt;/th>
&lt;th style="text-align: right">Density symmetry \(D_1\)&lt;/th>
&lt;th style="text-align: right">Elapsed time&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>O2/WBAP&lt;/td>
&lt;td style="text-align: right">0.13365 / 1.77897&lt;/td>
&lt;td style="text-align: right">\(2.48\times10^{-6}\)&lt;/td>
&lt;td style="text-align: right">00:43:24&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Full P3 3WBAP&lt;/td>
&lt;td style="text-align: right">0.12972 / 1.80020&lt;/td>
&lt;td style="text-align: right">\(1.244\times10^{-3}\)&lt;/td>
&lt;td style="text-align: right">03:04:05&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Full P3 CWBAP&lt;/td>
&lt;td style="text-align: right">0.13019 / 1.81093&lt;/td>
&lt;td style="text-align: right">\(7.36\times10^{-4}\)&lt;/td>
&lt;td style="text-align: right">02:47:21&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>LVR v2 \((0.5,0)\)&lt;/td>
&lt;td style="text-align: right">0.12714 / 1.78644&lt;/td>
&lt;td style="text-align: right">\(1.056\times10^{-4}\)&lt;/td>
&lt;td style="text-align: right">01:54:26&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>LVR v3 \((0.5,0.5)\)&lt;/td>
&lt;td style="text-align: right">0.12714 / 1.78644&lt;/td>
&lt;td style="text-align: right">\(1.064\times10^{-4}\)&lt;/td>
&lt;td style="text-align: right">01:54:55&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>LVR v3 \((1,1)\)&lt;/td>
&lt;td style="text-align: right">0.13550 / 1.77750&lt;/td>
&lt;td style="text-align: right">\(4.91\times10^{-5}\)&lt;/td>
&lt;td style="text-align: right">01:55:59&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>The symmetry measure compares reflected cells across \(x=y\); it is &lt;strong>not&lt;/strong> error against an exact solution. Likewise, density extrema and elapsed time do not by themselves establish an accuracy or hardware-speed ranking. The LVR rows took roughly 1 h 55 min versus 2 h 47 min–3 h 04 min for the fully limited P3 rows in these separate runs, partly because the latter needed more implicit iterations.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/riemann-246u4s-detail.png"
width="3150"
height="2130"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/riemann-246u4s-detail_hu9952967461739252659.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/riemann-246u4s-detail_hu18273418102523860969.png 1024w"
loading="lazy"
alt="Six complete methods on the symmetric 246U4S Riemann problem at the final time"
class="gallery-image"
data-flex-grow="147"
data-flex-basis="354px"
>&lt;/p>
&lt;p>&lt;em>Cell-average density at \(t=0.8\), shown over the same central \(x,y\) window and color scale for all six methods. The top row contains O2, 3WBAP, and CWBAP; the bottom row contains v2 and the two symmetric-cap v3 settings. The v3 unit-cap result remains structured but differs visibly from the lower-cap roll-up. These visual differences are not an exact-solution ranking.&lt;/em>&lt;/p>
&lt;h2 id="a-weak-shock-extensionand-its-temporal-caveat">&lt;a href="#a-weak-shock-extensionand-its-temporal-caveat" class="header-anchor">&lt;/a>A weak-shock extension—and its temporal caveat
&lt;/h2>&lt;p>The ordinary v3 gates can remain nearly zero at isolated Mach-1.01–1.10 shocks, leaving density overshoot at roughly 8–15% of the exact shock jump. The experimental G1 branch asks whether the pressure change between cell means is consistent with &lt;strong>unlimited&lt;/strong> O2 pressure-gradient extrapolations to their shared face. It also requires compression. The weak penalty is added by a maximum with the established shock and contact branches, so it does not replace them.&lt;/p>
&lt;p>Updating this sensitive gate at every nonlinear inner iteration produced many iteration-cap hits. The tested policy evaluates it freshly at each ESDIRK stage, then holds only this branch fixed during that stage&amp;rsquo;s remaining inner evaluations. With that policy, overshoot at Mach 1.05 falls from 15.015% of the jump to 0.03925%, and the 428 cap hits of the every-inner-update run fall to zero. Across Mach 1.01–1.10, the frozen-gate overshoot stays below 0.04% of the jump in these tests. The stronger stabilization broadens the front; full 3WBAP still has slightly smaller density errors in all four isolated-shock rows.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/weak-shock-g1.png"
width="2300"
height="2100"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/weak-shock-g1_hu5154323618256600759.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/weak-shock-g1_hu14440156229068498114.png 1024w"
loading="lazy"
alt="Frozen weak-gate confirmation across shocks, contacts, and smooth waves"
class="gallery-image"
data-flex-grow="109"
data-flex-basis="262px"
>&lt;/p>
&lt;p>&lt;em>The top row shows isolated Mach-1.02 and Mach-1.05 shock profiles; lower rows check Lax/Sod, steep contacts, and smooth entropy/acoustic waves. The nearly overlapping curves compare G1 refreshed every inner iteration with G1 frozen within each stage. Similar saved profiles hide a large difference in inner-iteration cap hits; the controls do not establish multidimensional behavior.&lt;/em>&lt;/p>
&lt;p>The sensor is a consistency test for a low-order pressure model, &lt;strong>not&lt;/strong> a proof that a physical shock is present: smooth cubic pressure can produce a nonzero mismatch. Stage freezing also changes the nonlinear temporal coupling. The weak branch remains optional and off by default; its multidimensional behavior and time-step-refined accuracy are open questions.&lt;/p>
&lt;h2 id="testing-a-high-order-target">&lt;a href="#testing-a-high-order-target" class="header-anchor">&lt;/a>Testing a high-order target
&lt;/h2>&lt;p>The next experiment replaces the O2 penalty target with a limited full-degree predictor. For each flow right-hand-side evaluation, an ordinary unpenalized reconstruction sweep produces a predictor \(q\); selected cells receive a 3WBAP- or CWBAP-limited target \(t\), while the LVR gate still comes from the WBAP-limited O2 sensor. The penalized update becomes&lt;/p>
$$
r_i^{m+1}=(1-\omega_i)r_i^m+\omega_i\big[(1-\alpha_i)G_i(r^{\mathrm{used}})+\alpha_i t_i\big].
$$&lt;p>The target is frozen for that reconstruction solve but rebuilt at the next flow evaluation. This keeps the local algebra linear for a fixed target while feeding the incoming high-order coefficients back into the outer process. It is therefore a different, more tightly coupled experiment—not a replacement that can inherit the O2-target results.&lt;/p>
&lt;p>All 49 planned one-dimensional/steady rows reached their declared horizon or fixed budget. Some high-order targets improve Lax and Shu–Osher density norms and preserve more of the latter&amp;rsquo;s wave train: its global density \(L_1\) changes from 0.033835 for the O2-target v3 control to 0.022324 with a 3WBAP target and 0.018117 with a CWBAP target. But local behavior differs: the ordinary 3WBAP target increases advected 10:1 contact overshoot from 0.033945 to 0.10802, whereas a wider CWBAP target reduces it to 0.0010012. These are case-specific outcomes, not a monotonic trend with target order.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/high-order-shu-osher.png"
width="1923"
height="1653"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/high-order-shu-osher_hu16856094221932542071.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/high-order-shu-osher_hu6413389132231482619.png 1024w"
loading="lazy"
alt="Shu–Osher wave-region profiles for O2 and high-order penalty targets"
class="gallery-image"
data-flex-grow="116"
data-flex-basis="279px"
>&lt;/p>
&lt;p>&lt;em>The selected Shu–Osher wave window illustrates why a high-order target is attractive: several variants retain more post-shock wave structure than the O2-target LVR control. Their global norm alone cannot determine whether local shock and contact excursions are acceptable.&lt;/em>&lt;/p>
&lt;p>The decisive counterexample is the fixed-budget cylinder. Its O2-target LVR run ends at an absolute density residual of \(8.3840\times10^{-8}\). The 3WBAP- and CWBAP-target variants end at 0.079925 and 0.065909; widening the target bands only improves those to 0.035074 and 0.029043. Some wall values look closer to the theoretical stagnation point, but the steady fields have not converged comparably.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/high-order-cylinder.png"
width="1955"
height="1653"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/high-order-cylinder_hu8095284595802575081.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/high-order-cylinder_hu6184613323401709667.png 1024w"
loading="lazy"
alt="Steady cylinder profiles and absolute residual histories for the target experiment"
class="gallery-image"
data-flex-grow="118"
data-flex-basis="283px"
>&lt;/p>
&lt;p>&lt;em>At the same 5000-iteration budget, the high-order-target profiles may look locally appealing while their residual histories remain far above the O2-target run. The plot is a convergence warning, not a cost-to-convergence comparison.&lt;/em>&lt;/p>
&lt;p>The available two-dimensional extension strengthens that warning but is &lt;strong>incomplete&lt;/strong> as of this synthesis. Both high-order-target DMR runs reached a 24-hour timeout before \(t=0.25\); the wider-band run completed 283/625 steps and hit its inner cap in 99.51% of logged stages. The normal-band run completed 520/625 steps with 29.04% capped stages. The 246U4S normal-band case was still running at 896/3200 steps, with 99.82% of logged stages capped; three other rows were pending. Thus there is no accepted final-time two-dimensional result for this target experiment.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/high-order-dmr-iterations.png"
width="1682"
height="1432"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/high-order-dmr-iterations_hu17987015329259326668.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/lvr-research-summary-2026/figures/high-order-dmr-iterations_hu5122587778846149216.png 1024w"
loading="lazy"
alt="Completed-step histories and inner-cap fractions for the high-order-target DMR trials"
class="gallery-image"
data-flex-grow="117"
data-flex-basis="281px"
>&lt;/p>
&lt;p>&lt;em>These histories show numerical work, not physical accuracy: the wider DMR target advances fewer steps despite the same wall-time limit because nearly every implicit stage exhausts its inner-iteration budget. Partial contours from these runs cannot be treated as converged final solutions.&lt;/em>&lt;/p>
&lt;h2 id="current-reading-of-the-evidence">&lt;a href="#current-reading-of-the-evidence" class="header-anchor">&lt;/a>Current reading of the evidence
&lt;/h2>&lt;p>The O2-target LVR family offers useful selective stabilization: v2 repairs the strong-shock shoulder, v3 gives a much better steep-contact option, and frozen G1 closes an isolated one-dimensional weak-shock gap. None is universally superior. Toro near-vacuum behavior, cap-dependent two-dimensional structures, and the weak sensor&amp;rsquo;s smooth-field response remain real limits. The experimental high-order target produces interesting waves and some lower one-dimensional norms, but its steady and implicit-transient convergence losses are too large to recommend it as the new default. A future target design must preserve those convergence properties, not just improve selected pictures.&lt;/p></description></item><item><title>Reaction-region indicators revisited: the cross-case tradeoff</title><link>https://harryzhou2000.github.io/hugo-harry/p/rri-cross-case-selection-2026/</link><pubDate>Mon, 19 Oct 2026 13:30:43 +0800</pubDate><guid>https://harryzhou2000.github.io/hugo-harry/p/rri-cross-case-selection-2026/</guid><description>&lt;img src="https://harryzhou2000.github.io/hugo-harry/p/rri-cross-case-selection-2026/cover.png" alt="Featured image of post Reaction-region indicators revisited: the cross-case tradeoff" />&lt;p>The &lt;a class="link" href="https://harryzhou2000.github.io/hugo-harry/p/reaction-region-indicator-progress/" target="_blank" rel="noopener"
>first RRI progress post&lt;/a> introduced the selector, and the &lt;a class="link" href="https://harryzhou2000.github.io/hugo-harry/p/reactive-region-selection-broada-bace6-balance/" target="_blank" rel="noopener"
>September comparison&lt;/a> set out broadA, BA-CE6, and Balance. This installment follows the research through 19 October 2026: a consolidated flame matrix, the local-rate-ratio candidates, a refined two-scale comparison, and a completed Kinetic-response campaign. It draws on existing runs; preparing the synthesis did not launch new CFD.&lt;/p>
&lt;p>The result is a useful mixed-method demonstration, &lt;strong>not a universal new default&lt;/strong>. localR10 gives the clearest interface/ignition compromise at coarse steps, but loses broadA&amp;rsquo;s H2/O2 flame robustness. Kinetic response largely recovers flame behavior, yet does not reproduce the desired two-scale compromise.&lt;/p>
&lt;h2 id="what-is-being-selected">&lt;a href="#what-is-being-selected" class="header-anchor">&lt;/a>What is being selected?
&lt;/h2>&lt;p>The cellwise switch \(\chi\) partitions chemistry between an implicit flow step and two local-chemistry half-steps. \(\chi=0\) is fully coupled; \(\chi=1\) is full Strang splitting. Intermediate values split only part of the chemical source. The selector is evaluated at the start of each physical step and held through that step, then recomputed on the evolved state. A selector image beside a terminal profile usually shows the &lt;em>last held&lt;/em> field, not a new evaluation at the endpoint.&lt;/p>
&lt;p>The comparisons below use &lt;strong>a-posteriori trajectories&lt;/strong> when discussing speed or temperature error. A-priori maps on saved states show what a recipe would select, not what its evolved solution would do. Actual physical steps, inner-iteration caps, and the chosen numerical reference remain separate qualifications.&lt;/p>
&lt;h2 id="the-expanded-flame-matrix">&lt;a href="#the-expanded-flame-matrix" class="header-anchor">&lt;/a>The expanded flame matrix
&lt;/h2>&lt;p>The corrected, nitrogen-diluted H2/O2 flame has a Cantera burning-speed reference of 2.2539659772 m/s. The new curation puts eight available treatments on a common three-ODE, three-step view: 72 comparison cells, &lt;strong>57 completed and 15 failed&lt;/strong>. Every completed recent-campaign trajectory reached its 100-iteration inner cap at every physical step. These are fixed-work fitted front speeds, not fully converged flame solutions; a dagger below marks \(R^2\lt0.9\).&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>ODE / code step&lt;/th>
&lt;th style="text-align: right">Coupled&lt;/th>
&lt;th style="text-align: right">Strang&lt;/th>
&lt;th style="text-align: right">broadA&lt;/th>
&lt;th style="text-align: right">BA-CE6&lt;/th>
&lt;th style="text-align: right">localR10&lt;/th>
&lt;th style="text-align: right">Kinetic&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>ESDIRK2 / 0.002&lt;/td>
&lt;td style="text-align: right">−1.001%&lt;/td>
&lt;td style="text-align: right">+13.931%&lt;/td>
&lt;td style="text-align: right">−1.112%†&lt;/td>
&lt;td style="text-align: right">−1.112%†&lt;/td>
&lt;td style="text-align: right">+4.808%&lt;/td>
&lt;td style="text-align: right">−1.014%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>ESDIRK2 / 0.004&lt;/td>
&lt;td style="text-align: right">−1.235%&lt;/td>
&lt;td style="text-align: right">failed&lt;/td>
&lt;td style="text-align: right">−1.119%&lt;/td>
&lt;td style="text-align: right">−1.119%&lt;/td>
&lt;td style="text-align: right">failed&lt;/td>
&lt;td style="text-align: right">+0.262%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>U2R1 / 0.004&lt;/td>
&lt;td style="text-align: right">+38.652%†&lt;/td>
&lt;td style="text-align: right">failed&lt;/td>
&lt;td style="text-align: right">+16.707%†&lt;/td>
&lt;td style="text-align: right">+7.681%†&lt;/td>
&lt;td style="text-align: right">failed&lt;/td>
&lt;td style="text-align: right">failed&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>U2R2 / 0.004&lt;/td>
&lt;td style="text-align: right">−1.911%&lt;/td>
&lt;td style="text-align: right">failed&lt;/td>
&lt;td style="text-align: right">−1.831%†&lt;/td>
&lt;td style="text-align: right">−1.885%†&lt;/td>
&lt;td style="text-align: right">failed&lt;/td>
&lt;td style="text-align: right">−1.190%&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>These selected rows explain the cross-case tension. broadA and BA-CE6 retain the roughly −1% ESDIRK2 flame-speed behavior when Strang&amp;rsquo;s fitted error grows or its run fails. localR10 cannot keep that protection. Kinetic is promising on ESDIRK2 at the largest step and completes U2R2, but its largest-step U2R1 run fails. The coarse U2R1 fitted values in the table all have poor linearity; a smaller percentage there does not establish a steady accurate flame. Balance without spatial expansion has no flame posterior matrix and should not be inferred from B-E2.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/flame_esdirk2.png"
width="1767"
height="829"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/flame_esdirk2_hu13606060628402948606.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/flame_esdirk2_hu2297853206647109462.png 1024w"
loading="lazy"
alt="Signed fitted flame-speed errors for ESDIRK2"
class="gallery-image"
data-flex-grow="213"
data-flex-basis="511px"
>&lt;/p>
&lt;p>&lt;strong>ESDIRK2 flame comparison.&lt;/strong> Each point is a signed fitted-speed error against the Cantera reference at one code step. The broadA and BA-CE6 curves overlap. Crossed markers identify reported poor fits; missing Strang and localR points at the largest step are failed runs, not zero errors. Lines join measured points, not a convergence law.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/flame_u2r1.png"
width="1744"
height="829"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/flame_u2r1_hu2967303546992695413.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/flame_u2r1_hu14996154382188953492.png 1024w"
loading="lazy"
alt="Signed fitted flame-speed errors for U2R1"
class="gallery-image"
data-flex-grow="210"
data-flex-basis="504px"
>&lt;/p>
&lt;p>&lt;strong>U2R1 flame comparison.&lt;/strong> The plot retains the large coarse-step errors and failures on its full vertical scale. Several fitted front speeds are nonstationary, so the apparent ordering of their percentages is weaker evidence than completion and fit quality. Kinetic has no largest-step point because that run failed.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/flame_u2r2.png"
width="1744"
height="829"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/flame_u2r2_hu16662716993781218910.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/flame_u2r2_hu17058228372572270448.png 1024w"
loading="lazy"
alt="Signed fitted flame-speed errors for U2R2"
class="gallery-image"
data-flex-grow="210"
data-flex-basis="504px"
>&lt;/p>
&lt;p>&lt;strong>U2R2 flame comparison.&lt;/strong> Strang and the localR variants fail across the tested steps; Kinetic returns coupled-like fitted errors. broadA and BA-CE6 complete, but their medium- and large-step fits have low linearity. B-E2&amp;rsquo;s completion does not imply improved speed error.&lt;/p>
&lt;p>Detonation gives a complementary check rather than a single winner. Against the &lt;strong>same-grid time-extrapolated&lt;/strong> speed of 2798.225 m/s, the corrected fine-grid matrix at code step \(8\times10^{-7}\) gives:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>ODE&lt;/th>
&lt;th style="text-align: right">Coupled&lt;/th>
&lt;th style="text-align: right">Strang&lt;/th>
&lt;th style="text-align: right">broadA&lt;/th>
&lt;th style="text-align: right">localR10&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>ESDIRK2&lt;/td>
&lt;td style="text-align: right">+1.295%&lt;/td>
&lt;td style="text-align: right">+0.311%&lt;/td>
&lt;td style="text-align: right">+0.589%&lt;/td>
&lt;td style="text-align: right">+0.311%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>U2R2&lt;/td>
&lt;td style="text-align: right">+0.360%&lt;/td>
&lt;td style="text-align: right">+0.943%&lt;/td>
&lt;td style="text-align: right">+1.017%&lt;/td>
&lt;td style="text-align: right">+0.855%&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>The preferred endpoint reverses with the ODE method. Spatial convergence of that reference is still deferred. BA-CE6, Balance, B-E2, and Kinetic have &lt;strong>no detonation a-posteriori matrix&lt;/strong>; a selector contour cannot supply those missing outcomes.&lt;/p>
&lt;h2 id="the-two-scale-result-localr10-helps-but-at-particular-steps">&lt;a href="#the-two-scale-result-localr10-helps-but-at-particular-steps" class="header-anchor">&lt;/a>The two-scale result: localR10 helps, but at particular steps
&lt;/h2>&lt;p>The n-heptane case separates a narrow reacting interface near 2 mm from a sensitive ignition region farther downstream. All compared short-window trajectories restart from the same state and end at 32 microseconds. Temperature errors are measured without shifting either front: interface means/maxima use \(1\le x\lt3\) mm, and ignition uses \(x\ge3\) mm.&lt;/p>
&lt;p>The refined comparison uses a Strang reference at code step \(2.5\times10^{-5}\). Refining the earlier reference by a factor of two changed interface mean/max errors by 3.40/78.31 K and ignition mean/max errors by 1.34/60.97 K. Those differences qualify small gains; they are not rigorous error bounds or proof that the Strang reference is exact.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Code step&lt;/th>
&lt;th>Treatment&lt;/th>
&lt;th style="text-align: right">Interface mean / max [K]&lt;/th>
&lt;th style="text-align: right">Ignition mean / max [K]&lt;/th>
&lt;th style="text-align: right">Implicit stages converged / capped&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>0.0004&lt;/td>
&lt;td>Coupled&lt;/td>
&lt;td style="text-align: right">21.11 / 370.87&lt;/td>
&lt;td style="text-align: right">44.71 / 686.62&lt;/td>
&lt;td style="text-align: right">16 / 0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>0.0004&lt;/td>
&lt;td>Strang&lt;/td>
&lt;td style="text-align: right">22.59 / 651.14&lt;/td>
&lt;td style="text-align: right">12.24 / 361.96&lt;/td>
&lt;td style="text-align: right">16 / 0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>0.0004&lt;/td>
&lt;td>broadA&lt;/td>
&lt;td style="text-align: right">21.53 / 443.67&lt;/td>
&lt;td style="text-align: right">14.74 / 317.39&lt;/td>
&lt;td style="text-align: right">14 / 2&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>0.0004&lt;/td>
&lt;td>localR10&lt;/td>
&lt;td style="text-align: right">20.81 / 412.76&lt;/td>
&lt;td style="text-align: right">10.56 / 242.77&lt;/td>
&lt;td style="text-align: right">16 / 0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>0.0008&lt;/td>
&lt;td>Coupled&lt;/td>
&lt;td style="text-align: right">failed&lt;/td>
&lt;td style="text-align: right">failed&lt;/td>
&lt;td style="text-align: right">1 / 3&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>0.0008&lt;/td>
&lt;td>Strang&lt;/td>
&lt;td style="text-align: right">12.28 / 538.32&lt;/td>
&lt;td style="text-align: right">30.50 / 574.34&lt;/td>
&lt;td style="text-align: right">7 / 1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>0.0008&lt;/td>
&lt;td>broadA&lt;/td>
&lt;td style="text-align: right">15.36 / 238.02&lt;/td>
&lt;td style="text-align: right">77.29 / 1049.96&lt;/td>
&lt;td style="text-align: right">7 / 1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>0.0008&lt;/td>
&lt;td>localR10&lt;/td>
&lt;td style="text-align: right">8.75 / 149.31&lt;/td>
&lt;td style="text-align: right">30.39 / 571.17&lt;/td>
&lt;td style="text-align: right">7 / 1&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>At \(4\times10^{-4}\), localR10 has roughly coupled-like interface error and Strang-like ignition error, with all stages converged. Its 0.30 K interface-mean advantage over coupled is smaller than the reference-refinement sensitivity; its ignition-mean improvement over coupled is much larger. At \(8\times10^{-4}\), it substantially reduces Strang&amp;rsquo;s worst interface error while keeping similar ignition error, but all completed methods have a capped stage and coupled has no endpoint. At the smaller \(10^{-4}\) step, Strang has the best interface mean among these recipes. A region does not have one permanent preferred method.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/two_scale_refined_2x2.png"
width="1721"
height="1629"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/two_scale_refined_2x2_hu2131224818417426111.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/two_scale_refined_2x2_hu12559758303999249822.png 1024w"
loading="lazy"
alt="Four regional temperature-error panels across code steps"
class="gallery-image"
data-flex-grow="105"
data-flex-basis="253px"
>&lt;/p>
&lt;p>&lt;strong>Two-scale matrix against the refined reference.&lt;/strong> The upper panels show interface mean and maximum absolute temperature error; the lower panels show ignition mean and maximum. The horizontal axis is the code step in units of \(10^{-4}\). Kinetic appears only at its two &lt;em>matched&lt;/em> smaller steps. Missing points, including failed coupled at the largest step, are not zeros; connecting lines do not establish an order of convergence.&lt;/p>
&lt;p>The localR10 choice uses chemical and estimated molecular-transport rates in shared coordinates \(q=(Y_1,\ldots,Y_{N_s},\ln(T/T_*))\). Write their rate vectors as \(s\) and \(d\), with \(\mathcal A=\|s\|_2\) and \(\mathcal D=\|d\|_2\). Its coupled share is&lt;/p>
$$
f_{R10}=g_h H(\Delta t\mathcal A;0.001,1)
H(\mathcal D/\mathcal A;0.10,4),
\qquad \chi_{R10}=\mathcal P_{0.10,0.05}(1-f_{R10}).
$$&lt;p>Here \(H(z;z_0,p)=(z/z_0)^p/[1+(z/z_0)^p]\), and \(g_h\) is the existing pressure-jump gate. The endpoint map snaps \(\chi\le0.10\) to coupled and \(\chi\ge0.95\) to Strang. Zero chemical or diffusive rate selects Strang. Unlike broadA&amp;rsquo;s gradient-timescale proxy, this ratio compares estimated rates; it still omits parts of the flow residual and is &lt;strong>not an error estimator&lt;/strong>.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/two_scale_selector_variants.png"
width="1738"
height="921"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/two_scale_selector_variants_hu13061043978030540082.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/two_scale_selector_variants_hu4914313029813570440.png 1024w"
loading="lazy"
alt="Coarse-step local recipe sensitivity"
class="gallery-image"
data-flex-grow="188"
data-flex-basis="452px"
>&lt;/p>
&lt;p>&lt;strong>Tuning is not transferable by inspection.&lt;/strong> These interface-mean errors use the &lt;em>earlier&lt;/em> Strang reference at \(5\times10^{-5}\), not the refined reference used in the main table. localR10P2 is attractive at code step 0.0004 but loses that advantage at 0.0008; B-E2&amp;rsquo;s wider selected interface does not improve both interface metrics. The two plotted step sizes do not define a convergence slope.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/comparison_4em4.png"
width="2293"
height="2014"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/comparison_4em4_hu15912117680969111135.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/comparison_4em4_hu15595235304113849319.png 1024w"
loading="lazy"
alt="Interface and ignition profiles at code step 0.0004"
class="gallery-image"
data-flex-grow="113"
data-flex-basis="273px"
>&lt;/p>
&lt;p>&lt;strong>Same-start trajectories at code step 0.0004.&lt;/strong> The top panels enlarge interface and ignition temperatures at the common endpoint; the lower panels show signed differences from the &lt;em>earlier&lt;/em> \(5\times10^{-5}\) Strang reference. This is where localR10P2 looks especially favorable. The reference&amp;rsquo;s zero-error trace is self-comparison, not exact physical truth, and these plotted errors must not be subtracted from the refined-reference table.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/comparison_8em4.png"
width="2302"
height="2014"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/comparison_8em4_hu2896053533523805903.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/comparison_8em4_hu14554304794694386123.png 1024w"
loading="lazy"
alt="Interface and ignition profiles at code step 0.0008"
class="gallery-image"
data-flex-grow="114"
data-flex-basis="274px"
>&lt;/p>
&lt;p>&lt;strong>Same-start trajectories at code step 0.0008.&lt;/strong> broadA limits one interface peak but permits larger ignition excursions. localR10 preserves Strang-like ignition behavior while improving the interface; the P2 variant loses its smaller-step advantage. Coupled failed and therefore has no endpoint curve. Several completed rows have a capped stage.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/selectors_8em4.png"
width="2293"
height="1934"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/selectors_8em4_hu16174670447211108781.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/selectors_8em4_hu11051221555341971233.png 1024w"
loading="lazy"
alt="Final temperature and selectors at code step 0.0008"
class="gallery-image"
data-flex-grow="118"
data-flex-basis="284px"
>&lt;/p>
&lt;p>&lt;strong>Selectors on their own evolved states.&lt;/strong> The figure pairs final temperature with each recipe&amp;rsquo;s last held selector at code step 0.0008. It shows nontrivial local mixing without spatial expansion, but it is not a same-state causal comparison: each recipe also changed the state from which its next selector was computed.&lt;/p>
&lt;h2 id="kinetic-response-a-useful-diagnostic-not-the-missing-default">&lt;a href="#kinetic-response-a-useful-diagnostic-not-the-missing-default" class="header-anchor">&lt;/a>Kinetic response: a useful diagnostic, not the missing default
&lt;/h2>&lt;p>The Kinetic attempt asks how strongly estimated transport changes the chemical rate, relative to chemistry changing its own rate. With the same rate vectors \(s,d\) and a constant-density chemical Jacobian \(J_s\), it uses&lt;/p>
$$
R_K=\frac{\|J_s d\|_2}{\|J_s s\|_2},
\qquad \chi_K=1-H(R_K;0.1,2).
$$&lt;p>This is a local directional-response ratio, &lt;strong>not&lt;/strong> the full spatial splitting error. A zero numerator, including the both-zero case, selects Strang; a positive numerator with zero denominator selects coupled. The implemented campaign uses constant-volume chemistry, no activity or shock gate, and no nonzero snapping tolerance. Its ratio has no explicit timestep dependence on a fixed state, although the evolving states still depend on the step. On the corrected flame, Kinetic largely restores coupled-like fitted speeds, including a +0.262% ESDIRK2 error at the largest step. The U2R1 run at that step still fails.&lt;/p>
&lt;p>At the &lt;em>matched&lt;/em> two-scale code step 0.0002, Kinetic&amp;rsquo;s ignition mean/max errors are &lt;strong>8.35/182.83 K&lt;/strong>. Strang gives &lt;strong>3.82/114.23 K&lt;/strong>, and broadA &lt;strong>3.96/62.29 K&lt;/strong>. Kinetic&amp;rsquo;s interface mean is 27.76 K, above coupled&amp;rsquo;s 21.48 K. It does not reproduce localR10&amp;rsquo;s later coarse-step compromise. Its requested 0.0004 and 0.0008 ceilings were both clipped by CFL to the &lt;em>same 14-step history&lt;/em>, with a median actual step of about 0.0002305. Those results are not equal-large-step comparisons with the eight- and four-step controls.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/nheptane_chi_2em4.png"
width="2309"
height="2193"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/nheptane_chi_2em4_hu15817866154477016864.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/nheptane_chi_2em4_hu15048553955389186105.png 1024w"
loading="lazy"
alt="Native Kinetic and broadA selectors on two-scale n-heptane"
class="gallery-image"
data-flex-grow="105"
data-flex-basis="252px"
>&lt;/p>
&lt;p>&lt;strong>Matched two-scale selection at code step 0.0002.&lt;/strong> Temperature appears above the last held broadA and Kinetic selectors. Zero is coupled and one is Strang. Kinetic retains more coupled chemistry through the ignition region; that accompanies its larger ignition error, but the plot alone cannot establish causality.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/native_selector.png"
width="2291"
height="2090"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/native_selector_hu11978017902995968508.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/native_selector_hu10873514234328828153.png 1024w"
loading="lazy"
alt="Native temperature and Kinetic selector comparison"
class="gallery-image"
data-flex-grow="109"
data-flex-basis="263px"
>&lt;/p>
&lt;p>&lt;strong>Native solver fields, not a rounded-state reconstruction.&lt;/strong> The H2 flame at code step 0.002 and two-scale n-heptane at 0.0002 pair endpoint temperatures with last-step selectors. Kinetic activates irregularly even in nearly isothermal regions. A satisfactory flame-speed fit does not establish that this cellwise field is smooth or well conditioned.&lt;/p>
&lt;p>The fixed-state mapping screen explains part of the difficulty. With \(H(R_K;0.1,2)\), the worst reference-interface coupled coverage is 0.674 while worst reference-ignition coupling is 0.421. Moving the midpoint to 0.03 raises interface coverage to 0.865, but also raises ignition coupling to 0.601. For the report&amp;rsquo;s illustrative 0.8-interface/0.1-ignition targets, even an optimized monotone remapping cannot satisfy every reference state. Those targets diagnose the design tradeoff; they are not physical truth labels.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/tradeoff_reference.png"
width="2100"
height="1330"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/tradeoff_reference_hu1814345538254369161.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/rri-cross-case-selection-2026/figures/tradeoff_reference_hu2992736775169475389.png 1024w"
loading="lazy"
alt="Kinetic mapping tradeoff across reference snapshots"
class="gallery-image"
data-flex-grow="157"
data-flex-basis="378px"
>&lt;/p>
&lt;p>&lt;strong>The remapping limit is visible before a posterior run.&lt;/strong> This fixed-state screen compares interface preservation with ignition release as the Kinetic ratio is remapped. Overlap between states forces a tradeoff for the stated diagnostic targets. The plot is not a graph of CFD temperature error and cannot replace the matched posterior result.&lt;/p>
&lt;h2 id="what-remains-open">&lt;a href="#what-remains-open" class="header-anchor">&lt;/a>What remains open
&lt;/h2>&lt;p>broadA remains the strongest practical cross-case mixed baseline in these tests; localR10 is the strongest demonstration of selective interface/ignition behavior at the coarse two-scale steps. Neither combines both advantages across cases. BA-CE6 preserves the tested flame but selects Strang throughout the sampled two-scale states, with no separate two-scale posterior row. B-E2, stronger snapping, and the Kinetic response each improve some measurements while losing others. No new 2-D propagation or GRI30 mixed-method validation resolves the transfer question.&lt;/p>
&lt;p>The next proposed diagnostic is a &lt;strong>finite-time, transport-forced local reactor probe&lt;/strong>: compare a splitting-defect proxy with the coarse coupled-chemistry integration error over the &lt;em>actual&lt;/em> proposed step. This is a research proposal, not an implemented or validated selector. A decisive later test would still need matched actual steps, separate accounting of capped nonlinear stages, and reference checks across flame, detonation, interface, and ignition. The goal is not a prettier coupling contour; it is one interpretable rule that retains broadA&amp;rsquo;s flame protection and localR10&amp;rsquo;s two-scale compromise.&lt;/p></description></item><item><title>Reactive-region selection: broadA, BA-CE6 and Balance</title><link>https://harryzhou2000.github.io/hugo-harry/p/reactive-region-selection-broada-bace6-balance/</link><pubDate>Tue, 29 Sep 2026 12:42:02 +0800</pubDate><guid>https://harryzhou2000.github.io/hugo-harry/p/reactive-region-selection-broada-bace6-balance/</guid><description>&lt;img src="https://harryzhou2000.github.io/hugo-harry/p/reactive-region-selection-broada-bace6-balance/cover.png" alt="Featured image of post Reactive-region selection: broadA, BA-CE6 and Balance" />&lt;p>&lt;strong>Evidence curated 29 September 2026.&lt;/strong> This post brings together the corrected
H2/O2 benchmarks and the n-heptane ignition-plus-front experiment. The numerical
cutoff includes the completed Balance test at code step \(4\times10^{-4}\).
The \(8\times10^{-4}\) comparison has reserved slots below; its numerical results
are not included in this edition. No new CFD was launched during curation.&lt;/p>
&lt;h2 id="conclusions-and-evidence-coverage">&lt;a href="#conclusions-and-evidence-coverage" class="header-anchor">&lt;/a>Conclusions and evidence coverage
&lt;/h2>&lt;ol>
&lt;li>&lt;strong>broadA remains the established flame-preserving recipe.&lt;/strong> BA-CE6 reproduces
its ESDIRK2 flame-speed behavior while allowing chemically difficult, weakly
diffusive ignition states to select Strang. However, the archived flame
matrices are fixed-inner-work calculations, not converged implicit solutions.&lt;/li>
&lt;li>&lt;strong>Detonation does not have a universal preferred endpoint.&lt;/strong> On the same
fine grid, ESDIRK2 at \(8\times10^{-7}\) favors Strang, while U2R2 at that step
favors coupled. No BA-CE6 detonation a-posteriori matrix exists in the archive;
similarity of its frozen selector to broadA is not a substitute for one.&lt;/li>
&lt;li>&lt;strong>The two-scale case exposes different regional errors.&lt;/strong> At matched
\(4\times10^{-4}\), coupled better preserves the interface&amp;rsquo;s worst temperature
error than Strang, but has much larger ignition-kernel error. Balance retains
localized interface mixing and improves kernel errors substantially relative
to coupled. It does not win every metric, and its small mean-error advantage
over Strang is below the available reference-refinement sensitivity.&lt;/li>
&lt;li>&lt;strong>BA-CE6 is too eager to escape in this particular prepared case.&lt;/strong> It selects
Strang everywhere in all 55 evaluated snapshot/timestep combinations. Balance
is a rate-balance alternative, not a validated universal replacement.&lt;/li>
&lt;/ol>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Evidence&lt;/th>
&lt;th>broadA&lt;/th>
&lt;th>BA-CE6&lt;/th>
&lt;th>Balance&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Corrected H2/O2 flame, 3 ODE × 3 steps, with endpoint controls&lt;/td>
&lt;td>Complete terminal accounting&lt;/td>
&lt;td>Same campaign: 31 completed, 5 failed across all 36 rows&lt;/td>
&lt;td>Unrun&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Fine H2/O2 detonation, 3 ODE × 4 steps, plus coarse ESDIRK2&lt;/td>
&lt;td>Complete: 52 rows including endpoints/default&lt;/td>
&lt;td>&lt;strong>Unrun; a-priori only&lt;/strong>&lt;/td>
&lt;td>Unrun&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Earlier hot n-heptane, ESDIRK2 × 5 steps × 4 treatments&lt;/td>
&lt;td>Complete&lt;/td>
&lt;td>Complete&lt;/td>
&lt;td>Unrun&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Prepared ignition + front, same-checkpoint short window&lt;/td>
&lt;td>Completed at \(2\times10^{-4}\) and \(4\times10^{-4}\)&lt;/td>
&lt;td>A-priori only; not a separate CFD row&lt;/td>
&lt;td>Completed at \(4\times10^{-4}\)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Prepared ignition + front, \(8\times10^{-4}\)&lt;/td>
&lt;td>Pending integration&lt;/td>
&lt;td>Not scheduled&lt;/td>
&lt;td>Pending integration&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>“Complete accounting” includes failures; it does not mean every row yields a
valid accuracy result. The detailed &lt;a class="link" href="https://github.com/harryzhou2000/reaction-region-indicator/blob/main/studies/nheptane_two_scale_strang/REPORT.md" target="_blank" rel="noopener"
>two-scale report&lt;/a>
contains all comparison plots, tables, startup records and frozen-state figures.
The linked study records require access to the research repository; the figures
needed to read this post are included on this page.&lt;/p>
&lt;h2 id="common-mixed-integration-contract">&lt;a href="#common-mixed-integration-contract" class="header-anchor">&lt;/a>Common mixed-integration contract
&lt;/h2>&lt;p>Let \(U\) be the cell-mean conservative state, \(F(U)\) the spatial flow residual
(convection and diffusion, with nonchemical sources if present), and \(S(U)\)
the local chemical source. For a field \(\chi_i\in[0,1]\) frozen at the beginning
of each physical step, partition the evolution as&lt;/p>
$$
\frac{\mathrm dU}{\mathrm dt}=F(U)+S(U),\qquad
G_\chi(U)=F(U)+(1-\chi)S(U),\qquad Q_\chi(U)=\chi S(U).
$$&lt;p>Advance \(Q_\chi\) for half a step, \(G_\chi\) for a full step, and \(Q_\chi\) for
half a step. The cell-local chemistry advance is constant-volume; the flow
advance uses the selected ODE method. Thus &lt;strong>\(\chi=0\) is fully coupled&lt;/strong> and
&lt;strong>\(\chi=1\) is full Strang&lt;/strong>. Values strictly between them split only part of
the chemistry. This is not a convex combination of two completed solutions.
The separate debugging source multiplier multiplies chemistry independently;
it is unity in these studies. Nonchemical sources are not multiplied by \(\chi\).&lt;/p>
&lt;p>All three retained recipes use the same snapping operator and zero spatial passes:&lt;/p>
$$
\mathcal P(z)=
\begin{cases}
0,&amp;z\le0.01,\\
z,&amp;0.01\lt z\lt0.95,\\
1,&amp;z\ge0.95.
\end{cases}
$$&lt;p>Exact zero skips that cell&amp;rsquo;s split chemistry advance; exact one removes its
chemistry work from the implicit flow RHS. The upper threshold here is the
&lt;strong>retained recipe&amp;rsquo;s 0.05 distance from one&lt;/strong>, not the general solver default.
Post-step diagnostic output contains the &lt;strong>last pre-step frozen selector&lt;/strong>,
not necessarily a selector reevaluated on the plotted final state.&lt;/p>
&lt;p>The common threshold-and-power function is&lt;/p>
$$
H(z;z_0,p)=\frac{(z/z_0)^p}{1+(z/z_0)^p},\qquad z\ge0,\quad z_0>0,\quad p>0.
$$&lt;p>\(z_0\) is the half-activation value and \(p\) controls transition sharpness.
All arguments and thresholds below are dimensionless. The physical step is
\(\Delta t=\Delta t_{\rm code}L_0/U_0\); for the two-scale case,
\(L_0=1\,\mathrm m\), \(U_0=379\,\mathrm{m\,s^{-1}}\).&lt;/p>
&lt;h3 id="constituent-fields-used-by-broada-and-ba-ce6">&lt;a href="#constituent-fields-used-by-broada-and-ba-ce6" class="header-anchor">&lt;/a>Constituent fields used by broadA and BA-CE6
&lt;/h3>&lt;p>For species \(k\), let \(Y_k\) be mass fraction, \(W_k\) molecular weight,
\(\dot\omega_k\) net molar production per volume per time, and
\(\dot m_k=W_k\dot\omega_k\) net mass production per volume per time.
\(\rho\) is mass density; \(T\) is absolute temperature; \(c_v\) is mixture
mass-specific constant-volume heat capacity; \(h_k\) is species mass-specific
enthalpy including formation enthalpy. Define&lt;/p>
$$
\dot q_h=-\sum_k h_k\dot m_k,\qquad
T_{\rm scale}=\max(T,T_{\rm floor}),\qquad
A=\left[\sum_k\left(\frac{\dot m_k}{\rho}\right)^2+
\left(\frac{\dot q_h}{\rho c_vT_{\rm scale}}\right)^2\right]^{1/2}.
$$&lt;p>\(\dot q_h\) is an enthalpy-based volumetric heat-release proxy in
\(\mathrm{W\,m^{-3}}\), not an exact constant-volume temperature derivative.
\(T_{\rm scale}\) is a temperature in kelvin; the ratio in \(A\) has units
\(\mathrm{s^{-1}}\). \(T_{\rm floor}\) is the mechanism&amp;rsquo;s supported lower
temperature bound. There is no logarithm of a dimensional temperature.&lt;/p>
&lt;p>For face-neighbor cells \(i,j\), let \(\ell_{ij}\) be physical center distance,
\(\ell_i\) the physical maximum cell-length scale, and \(Y_*=10^{-3}\). The
solver-form gradient estimate is&lt;/p>
$$
G_i=\max_{j\in\mathcal N(i)}\left[
\left(\frac{T_j-T_i}{\ell_{ij}\max(T_i,T_j,T_{\rm floor})}\right)^2+
\sum_{k:\,\max(Y_{k,i},Y_{k,j})\ge Y_*}
\left(\frac{Y_{k,j}-Y_{k,i}}{\ell_{ij}\max(Y_{k,i},Y_{k,j},Y_*)}\right)^2
\right]^{1/2}.
$$$$
L_{{\rm grad},i}=\max(G_i^{-1},\ell_i),\qquad
B_i=\frac{D_{\max,i}}{L_{{\rm grad},i}^{2}},\qquad
a_i=\Delta t A_i,\quad b_i=\Delta t B_i.
$$&lt;p>Use \(B_i=0\) when \(G_i=0\). \(D_{\max}\) is the largest mixture-averaged species
diffusivity in \(\mathrm{m^2\,s^{-1}}\). \(B\) is an inverse-time diffusion-scale
estimate, &lt;strong>not an evaluated diffusive RHS&lt;/strong>. Physical-boundary faces without
a neighbor do not add a jump. The temperature term approximates the gradient
of \(\ln(T/T_{\rm ref})\) for any fixed positive reference temperature; the
finite difference is not exactly a logarithmic difference. The cell-length
bound limits activation by gradients below the represented spatial scale.&lt;/p>
&lt;p>The pressure sensor and shock suppression are&lt;/p>
$$
h_i=\max_{j\in\mathcal N(i)}
\frac{|p_j-p_i|}{\max(|p_i|,|p_j|,p_\epsilon)},\qquad
g_{h,i}=\frac{1}{1+(h_i/0.08)^4}.
$$&lt;p>Here \(p\) is pressure and \(p_\epsilon\) is only a positive numerical safeguard,
negligible in these positive-pressure cases. The symbol \(h_i\) denotes a
pressure jump, distinct from species enthalpy \(h_k\). Strong jumps reduce
coupling; this is an empirical shock preference, not a theorem that Strang
is always more accurate in detonations.&lt;/p>
&lt;h3 id="broada-broad-activity-activation">&lt;a href="#broada-broad-activity-activation" class="header-anchor">&lt;/a>broadA: broad activity activation
&lt;/h3>$$
C_A=H(a;10,1/2)H(b;2,1/2)g_h,\qquad
f_A=H(C_A;0.005,3),\qquad \chi_A=\mathcal P(1-f_A).
$$&lt;p>\(f_A\) is the raw coupled fraction. The square-root Hill factors activate
gradually, and the low outer midpoint broadens the coupled band relative to
the earlier default. No expansion/filter passes are used. \(A\) and \(B\) must
both be nonzero. At fixed positive rates, \(\Delta t\to0\) gives Strang;
\(\Delta t\to\infty\) gives raw coupled fraction \(H(g_h;0.005,3)\).
Hence a smooth, weakly diffusive but very stiff ignition region can eventually
become strongly coupled even when that is not advantageous.&lt;/p>
&lt;h3 id="ba-ce6-broada-with-chemistry-escape">&lt;a href="#ba-ce6-broada-with-chemistry-escape" class="header-anchor">&lt;/a>BA-CE6: broadA with chemistry escape
&lt;/h3>&lt;p>Define the concentration-Jacobian proxy&lt;/p>
$$
\Lambda=\max_k\left|\frac{\partial\dot\omega_k}{\partial C_k}\right|,
\qquad s=\Delta t\Lambda,\qquad r=\frac{B}{\Lambda},
$$&lt;p>where \(C_k\) is species molar concentration. The diagonal derivatives use
Cantera&amp;rsquo;s &lt;code>net_production_rates_ddCi&lt;/code>: temperature, pressure and all other
species concentrations are held fixed under that API&amp;rsquo;s derivative convention.
&lt;a class="link" href="https://www.cantera.org/stable/python/kinetics.html#cantera.Kinetics.net_production_rates_ddCi" target="_blank" rel="noopener"
>Cantera kinetics reference&lt;/a>.
This is
not the spectral radius of the full constant-energy reactor Jacobian, nor a
measured nonlinear convergence rate. \(\Lambda\) has units \(\mathrm{s^{-1}}\).
For \(\Lambda>0\), set&lt;/p>
$$
E=H(s;100,2)\,[1-H(r;10^{-6},6)],\qquad
\chi_{\rm CE6}=\mathcal P\bigl(1-f_A(1-E)\bigr).
$$&lt;p>Set \(E=0\) when \(\Lambda=0\). The gate releases chemistry toward Strang when
the timestep is long relative to the fast chemical scale and diffusion is
weak relative to that scale. It can only &lt;strong>remove&lt;/strong> broadA coupling. “6” is
the power on the \(B/\Lambda\) gate, not an ODE order. At positive fixed rates,&lt;/p>
$$
f_{{\rm CE6},\infty}=H(g_h;0.005,3)H(B/\Lambda;10^{-6},6).
$$&lt;p>This preserves the tested H2/O2 flame band but can erase a real interface if
a very fast chemical mode drives \(B/\Lambda\) below the threshold. The numerical
value \(10^{-6}\) is calibrated, not a universal physical boundary. This recipe
is the refined mode-2 BA-CE6, not the earlier unsuccessful ratio-only v2.&lt;/p>
&lt;h3 id="balance-compare-actual-chemical-and-diffusive-rate-coordinates">&lt;a href="#balance-compare-actual-chemical-and-diffusive-rate-coordinates" class="header-anchor">&lt;/a>Balance: compare actual chemical and diffusive rate coordinates
&lt;/h3>&lt;p>Use all species and temperature in the same coordinates:&lt;/p>
$$
\mathcal A=\left[\sum_k\dot Y_{S,k}^{2}+(\dot T_S/T)^2\right]^{1/2},
\qquad
\mathcal D=\left[\sum_k\dot Y_{D,k}^{2}+(\dot T_D/T)^2\right]^{1/2}.
$$&lt;p>Both norms have units \(\mathrm{s^{-1}}\). They contain no division by trace
species fractions. With species mass-specific internal energy \(e_k(T)\),
including formation energy,&lt;/p>
$$
\dot Y_{S,k}=\dot m_k/\rho,\qquad
\rho c_v\dot T_S=-\sum_k e_k\dot m_k.
$$&lt;p>Unlike broadA&amp;rsquo;s \(\dot q_h\) proxy, this chemical temperature rate is consistent
with fixed volume and total energy. For molecular diffusion, form&lt;/p>
$$
\mathbf j_k^{0}=-\rho D_k\nabla Y_k,\qquad
\mathbf j_k=\mathbf j_k^{0}-Y_k\sum_l\mathbf j_l^{0},\qquad
\mathbf q=-\kappa\nabla T+\sum_k h_k\mathbf j_k,
$$$$
S_{D,k}=-\nabla\cdot\mathbf j_k,\qquad
\dot Y_{D,k}=S_{D,k}/\rho,\qquad
\rho c_v\dot T_D=-\nabla\cdot\mathbf q-\sum_k e_kS_{D,k}.
$$&lt;p>\(\kappa\) is thermal conductivity; \(\mathbf j_k\) is a mass flux with zero summed
species flux; \(\mathbf q\) includes conduction and diffusing species enthalpy.
The last subtraction removes composition-induced internal-energy change
before converting the energy rate to a temperature rate. In the diagnostic,
centered two-point cell-mean gradients and averaged face coefficients estimate
these divergences. Physical-boundary diffusive flux is zero. This estimator
does &lt;strong>not&lt;/strong> replace the solver&amp;rsquo;s reconstructed spatial residual and does not
include convection, compression or viscous heating.&lt;/p>
$$
\alpha=\Delta t\mathcal A,\qquad d=\Delta t\mathcal D,\qquad
Z=\frac{\alpha d}{(1+\alpha)^2},\qquad
\chi_{\rm Balance}=\mathcal P\left(\frac{1}{1+(g_hZ/\theta)^p}\right),
\qquad \theta=0.001,\quad p=2.
$$&lt;p>\(\alpha\) is deliberately distinguished from broadA&amp;rsquo;s \(a\): its temperature
component uses internal energy rather than enthalpy. The midpoint and power
were selected from an a-priori screen before this candidate&amp;rsquo;s CFD result:
\(\theta\in\{0.0005,0.001,0.002,0.005,0.01,0.02\}\), \(p\in\{2,3\}\).
There is no Jacobian, chemistry-escape ratio or additional activity gate.
The shared shock gate and endpoint thresholds remain parameters.&lt;/p>
&lt;p>For fixed nonzero \(\mathcal A\),&lt;/p>
$$
Z\sim\Delta t^2\mathcal A\mathcal D\quad(\Delta t\to0),\qquad
Z\longrightarrow\mathcal D/\mathcal A\quad(\Delta t\to\infty).
$$&lt;p>Zero chemistry or diffusion selects Strang. Large-step coupling therefore
requires an appreciable &lt;em>current diffusive rate relative to chemical rate&lt;/em>,
not merely a large gradient multiplied by an arbitrarily large timestep.
Net-rate cancellation, stiff near-equilibrium chemistry, omitted convection,
mesh dependence and physical boundary modeling remain blind spots. The
implementation has only been validated on this orthogonal, closed strip.&lt;/p>
&lt;h2 id="h2o2-flame-complete-latest-four-treatment-matrix">&lt;a href="#h2o2-flame-complete-latest-four-treatment-matrix" class="header-anchor">&lt;/a>H2/O2 flame: complete latest four-treatment matrix
&lt;/h2>&lt;p>This is the &lt;a class="link" href="https://github.com/harryzhou2000/reaction-region-indicator/blob/main/studies/aposteriori_bace6_matrices/REPORT.md" target="_blank" rel="noopener"
>BA-CE6 campaign&lt;/a>, with
its own rerun broadA and endpoint controls, rather than selectively combining
rows from different campaigns. It uses the corrected multispecies temperature
gradient, a Cantera stationary initial profile, fresh &lt;code>BCIn&lt;/code> and burned &lt;code>BCFar&lt;/code>,
\(25\,\mu\mathrm m\) spacing, P1 FV, and final code time 0.5. The reference is
\(S_{L,\rm ref}=2.2539659772\,\mathrm{m\,s^{-1}}\). Burning velocity is recovered
from fresh-gas velocity minus fitted laboratory-frame front speed:&lt;/p>
$$
S_L=u_{\rm fresh}-\frac{\mathrm dx_f}{\mathrm dt},\qquad
\varepsilon_S=100\left(\frac{S_L}{S_{L,\rm ref}}-1\right)\%.
$$&lt;p>Fits use code times 0.2–0.5. ODE codes are 204 (ESDIRK2), 412 (U2R1) and 411
(U2R2). All 36 requested rows have terminal accounting: 31 completed and five
Strang failures. &lt;strong>All 11,212 physical steps of the completed rows hit the
100-iteration cap&lt;/strong>; 15,255 observed implicit-stage groups are capped.
These are fixed-work observations. An asterisk below marks \(R^2&lt;0.9\), where
the fitted speed is only an interval average, not a reliable steady speed.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>ODE&lt;/th>
&lt;th style="text-align: right">Code dt&lt;/th>
&lt;th style="text-align: right">Coupled&lt;/th>
&lt;th style="text-align: right">Strang&lt;/th>
&lt;th style="text-align: right">broadA&lt;/th>
&lt;th style="text-align: right">BA-CE6&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>ESDIRK2&lt;/td>
&lt;td style="text-align: right">0.00075&lt;/td>
&lt;td style="text-align: right">-1.223%&lt;/td>
&lt;td style="text-align: right">+1.259%&lt;/td>
&lt;td style="text-align: right">-1.186%&lt;/td>
&lt;td style="text-align: right">-1.186%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>ESDIRK2&lt;/td>
&lt;td style="text-align: right">0.002&lt;/td>
&lt;td style="text-align: right">-1.001%&lt;/td>
&lt;td style="text-align: right">+13.931%&lt;/td>
&lt;td style="text-align: right">-1.112%*&lt;/td>
&lt;td style="text-align: right">-1.112%*&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>ESDIRK2&lt;/td>
&lt;td style="text-align: right">0.004&lt;/td>
&lt;td style="text-align: right">-1.235%&lt;/td>
&lt;td style="text-align: right">failed&lt;/td>
&lt;td style="text-align: right">-1.119%&lt;/td>
&lt;td style="text-align: right">-1.119%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>U2R1&lt;/td>
&lt;td style="text-align: right">0.00075&lt;/td>
&lt;td style="text-align: right">-1.050%&lt;/td>
&lt;td style="text-align: right">-0.979%&lt;/td>
&lt;td style="text-align: right">-1.218%&lt;/td>
&lt;td style="text-align: right">-1.218%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>U2R1&lt;/td>
&lt;td style="text-align: right">0.002&lt;/td>
&lt;td style="text-align: right">+2.680%*&lt;/td>
&lt;td style="text-align: right">+3.466%&lt;/td>
&lt;td style="text-align: right">+2.107%&lt;/td>
&lt;td style="text-align: right">+2.107%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>U2R1&lt;/td>
&lt;td style="text-align: right">0.004&lt;/td>
&lt;td style="text-align: right">+38.652%*&lt;/td>
&lt;td style="text-align: right">failed&lt;/td>
&lt;td style="text-align: right">+16.707%*&lt;/td>
&lt;td style="text-align: right">+7.681%*&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>U2R2&lt;/td>
&lt;td style="text-align: right">0.00075&lt;/td>
&lt;td style="text-align: right">-1.025%&lt;/td>
&lt;td style="text-align: right">failed&lt;/td>
&lt;td style="text-align: right">-1.075%&lt;/td>
&lt;td style="text-align: right">-1.075%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>U2R2&lt;/td>
&lt;td style="text-align: right">0.002&lt;/td>
&lt;td style="text-align: right">-1.268%&lt;/td>
&lt;td style="text-align: right">failed&lt;/td>
&lt;td style="text-align: right">-1.391%*&lt;/td>
&lt;td style="text-align: right">-1.572%*&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>U2R2&lt;/td>
&lt;td style="text-align: right">0.004&lt;/td>
&lt;td style="text-align: right">-1.911%&lt;/td>
&lt;td style="text-align: right">failed&lt;/td>
&lt;td style="text-align: right">-1.831%*&lt;/td>
&lt;td style="text-align: right">-1.885%*&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/flame_esdirk2.png"
width="2242"
height="1558"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/flame_esdirk2_hu830779846993333359.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/flame_esdirk2_hu52931296591467141.png 1024w"
loading="lazy"
alt="ESDIRK2 flame matrix"
class="gallery-image"
data-flex-grow="143"
data-flex-basis="345px"
>&lt;/p>
&lt;p>&lt;strong>ESDIRK2 flame errors.&lt;/strong> broadA and BA-CE6 retain roughly −1.1% fitted error;
Strang reaches +13.9% at the middle step and fails at the largest. All completed
curves are inner-capped, including those close to the reference speed.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/flame_u2r1.png"
width="2242"
height="1558"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/flame_u2r1_hu5926878101300480162.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/flame_u2r1_hu765316376607060917.png 1024w"
loading="lazy"
alt="U2R1 flame matrix"
class="gallery-image"
data-flex-grow="143"
data-flex-basis="345px"
>&lt;/p>
&lt;p>&lt;strong>U2R1 flame errors.&lt;/strong> The coarse-step BA-CE6 interval fit is closer to the
reference than broadA or coupled, but all those coarse trajectories have low
\(R^2\); the smaller apparent percentage is not proof of a steady accurate flame.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/flame_u2r2.png"
width="2318"
height="1558"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/flame_u2r2_hu4822394154535261372.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/flame_u2r2_hu11620351569442455285.png 1024w"
loading="lazy"
alt="U2R2 flame matrix"
class="gallery-image"
data-flex-grow="148"
data-flex-basis="357px"
>&lt;/p>
&lt;p>&lt;strong>U2R2 flame errors.&lt;/strong> Adaptive rows finish where Strang fails. Small signed
errors in the medium/coarse adaptive rows coexist with low front-fit linearity.&lt;/p>
&lt;h3 id="do-not-interchange-the-older-broada-campaign">&lt;a href="#do-not-interchange-the-older-broada-campaign" class="header-anchor">&lt;/a>Do not interchange the older broadA campaign
&lt;/h3>&lt;p>The earlier &lt;a class="link" href="https://github.com/harryzhou2000/reaction-region-indicator/blob/main/studies/h2o2_1d_full_matrix/REPORT.md" target="_blank" rel="noopener"
>full matrix&lt;/a> compared
coupled/Strang/default/broadA. Its broadA coarse U2R1 error is &lt;strong>+3.717%&lt;/strong>,
whereas the later BA-CE6 campaign&amp;rsquo;s rerun broadA gives &lt;strong>+16.707%&lt;/strong>. Their
\(R^2\) values are only 0.175 and 0.230. The later BA-CE6 value is &lt;strong>+7.681%&lt;/strong>
with \(R^2=0.248\). All are fixed-work, nonstationary fits. This report uses the
later four-treatment campaign consistently and does not replace its broadA
control with the more attractive older number. The difference has not been
isolated into a unique cause.&lt;/p>
&lt;h2 id="h2o2-detonation-fine-grid-posterior-matrix">&lt;a href="#h2o2-detonation-fine-grid-posterior-matrix" class="header-anchor">&lt;/a>H2/O2 detonation: fine-grid posterior matrix
&lt;/h2>&lt;p>The laboratory-frame fitted ZND setup uses &lt;strong>5000 cells over 12.5 mm&lt;/strong>,
\(\Delta x=2.5\,\mu\mathrm m\), initial shock at 2.5 mm and left &lt;code>BCFar&lt;/code> matching
the downstream state. The fitted induction length is about \(50.04\,\mu\mathrm m\)
(about 20 cells). The same-grid reference is the observed-order time-limit
extrapolation of the coupled ESDIRK4 study,&lt;/p>
$$
D_0=2798.224963262598\,\mathrm{m\,s^{-1}},\qquad
\varepsilon_D=100\left(\frac{D}{D_0}-1\right)\%.
$$&lt;p>This is &lt;strong>not&lt;/strong> the equilibrium Cantera/SDToolbox CJ value
\(2836.381883789159\,\mathrm{m\,s^{-1}}\) and is not a spatially converged
continuum reference. Spatial convergence remains deferred. All 52 archived
rows have fitted speeds; front fits use \(4.0\le x_f\le8.25\) mm and have
\(R^2\ge0.999978\). The &lt;code>default&lt;/code> column is the earlier default-Hill control,
not BA-CE6 or Balance. Every BA-CE6 entry is explicitly unrun.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>ODE&lt;/th>
&lt;th style="text-align: right">Code dt&lt;/th>
&lt;th style="text-align: right">Coupled&lt;/th>
&lt;th style="text-align: right">Strang&lt;/th>
&lt;th style="text-align: right">default&lt;/th>
&lt;th style="text-align: right">broadA&lt;/th>
&lt;th>BA-CE6&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>ESDIRK2&lt;/td>
&lt;td style="text-align: right">1e-07&lt;/td>
&lt;td style="text-align: right">+0.030%&lt;/td>
&lt;td style="text-align: right">+0.027%&lt;/td>
&lt;td style="text-align: right">+0.027%&lt;/td>
&lt;td style="text-align: right">+0.027%&lt;/td>
&lt;td>unrun&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>ESDIRK2&lt;/td>
&lt;td style="text-align: right">2e-07&lt;/td>
&lt;td style="text-align: right">+0.135%&lt;/td>
&lt;td style="text-align: right">+0.073%&lt;/td>
&lt;td style="text-align: right">+0.073%&lt;/td>
&lt;td style="text-align: right">+0.076%&lt;/td>
&lt;td>unrun&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>ESDIRK2&lt;/td>
&lt;td style="text-align: right">4e-07&lt;/td>
&lt;td style="text-align: right">+0.456%&lt;/td>
&lt;td style="text-align: right">+0.242%&lt;/td>
&lt;td style="text-align: right">+0.242%&lt;/td>
&lt;td style="text-align: right">+0.244%&lt;/td>
&lt;td>unrun&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>ESDIRK2&lt;/td>
&lt;td style="text-align: right">8e-07&lt;/td>
&lt;td style="text-align: right">+1.295%&lt;/td>
&lt;td style="text-align: right">+0.311%&lt;/td>
&lt;td style="text-align: right">+0.420%&lt;/td>
&lt;td style="text-align: right">+0.589%&lt;/td>
&lt;td>unrun&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>ESDIRK2&lt;/td>
&lt;td style="text-align: right">1.6e-06&lt;/td>
&lt;td style="text-align: right">+16.627%&lt;/td>
&lt;td style="text-align: right">+19.380%&lt;/td>
&lt;td style="text-align: right">+19.915%&lt;/td>
&lt;td style="text-align: right">+20.039%&lt;/td>
&lt;td>unrun&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>U2R1&lt;/td>
&lt;td style="text-align: right">1e-07&lt;/td>
&lt;td style="text-align: right">+0.031%&lt;/td>
&lt;td style="text-align: right">+0.031%&lt;/td>
&lt;td style="text-align: right">+0.031%&lt;/td>
&lt;td style="text-align: right">+0.031%&lt;/td>
&lt;td>unrun&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>U2R1&lt;/td>
&lt;td style="text-align: right">2e-07&lt;/td>
&lt;td style="text-align: right">+0.134%&lt;/td>
&lt;td style="text-align: right">+0.125%&lt;/td>
&lt;td style="text-align: right">+0.125%&lt;/td>
&lt;td style="text-align: right">+0.118%&lt;/td>
&lt;td>unrun&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>U2R1&lt;/td>
&lt;td style="text-align: right">4e-07&lt;/td>
&lt;td style="text-align: right">+0.319%&lt;/td>
&lt;td style="text-align: right">+0.313%&lt;/td>
&lt;td style="text-align: right">+0.309%&lt;/td>
&lt;td style="text-align: right">+0.296%&lt;/td>
&lt;td>unrun&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>U2R1&lt;/td>
&lt;td style="text-align: right">8e-07&lt;/td>
&lt;td style="text-align: right">+0.745%&lt;/td>
&lt;td style="text-align: right">+0.693%&lt;/td>
&lt;td style="text-align: right">+0.712%&lt;/td>
&lt;td style="text-align: right">+0.735%&lt;/td>
&lt;td>unrun&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>U2R2&lt;/td>
&lt;td style="text-align: right">1e-07&lt;/td>
&lt;td style="text-align: right">-0.376%&lt;/td>
&lt;td style="text-align: right">-0.371%&lt;/td>
&lt;td style="text-align: right">-0.371%&lt;/td>
&lt;td style="text-align: right">-0.371%&lt;/td>
&lt;td>unrun&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>U2R2&lt;/td>
&lt;td style="text-align: right">2e-07&lt;/td>
&lt;td style="text-align: right">-0.183%&lt;/td>
&lt;td style="text-align: right">-0.313%&lt;/td>
&lt;td style="text-align: right">-0.313%&lt;/td>
&lt;td style="text-align: right">-0.316%&lt;/td>
&lt;td>unrun&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>U2R2&lt;/td>
&lt;td style="text-align: right">4e-07&lt;/td>
&lt;td style="text-align: right">-0.049%&lt;/td>
&lt;td style="text-align: right">-0.092%&lt;/td>
&lt;td style="text-align: right">-0.092%&lt;/td>
&lt;td style="text-align: right">-0.104%&lt;/td>
&lt;td>unrun&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>U2R2&lt;/td>
&lt;td style="text-align: right">8e-07&lt;/td>
&lt;td style="text-align: right">+0.360%&lt;/td>
&lt;td style="text-align: right">+0.943%&lt;/td>
&lt;td style="text-align: right">+1.026%&lt;/td>
&lt;td style="text-align: right">+1.017%&lt;/td>
&lt;td>unrun&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/detonation_esdirk2_resolved.png"
width="2256"
height="1558"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/detonation_esdirk2_resolved_hu10642776842920769239.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/detonation_esdirk2_resolved_hu6750497215754180575.png 1024w"
loading="lazy"
alt="ESDIRK2 detonation matrix, smaller-step detail"
class="gallery-image"
data-flex-grow="144"
data-flex-basis="347px"
>&lt;/p>
&lt;p>&lt;strong>ESDIRK2 through \(8\times10^{-7}\).&lt;/strong> This zoom resolves the favorable Strang
and broadA errors at useful timesteps without compressing them against the
coarse-step breakdown. The complete larger-step view follows.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/detonation_esdirk2.png"
width="2282"
height="1558"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/detonation_esdirk2_hu11024214283729716853.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/detonation_esdirk2_hu15401006381582897408.png 1024w"
loading="lazy"
alt="ESDIRK2 detonation matrix"
class="gallery-image"
data-flex-grow="146"
data-flex-basis="351px"
>&lt;/p>
&lt;p>&lt;strong>ESDIRK2 detonation errors.&lt;/strong> At \(8\times10^{-7}\), Strang and broadA improve
on coupled. The \(1.6\times10^{-6}\) extension makes every treatment poor and
dominates the vertical scale; use the table to resolve the smaller-step errors.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/detonation_u2r1.png"
width="2256"
height="1558"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/detonation_u2r1_hu5504329801514018908.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/detonation_u2r1_hu15656278666897023798.png 1024w"
loading="lazy"
alt="U2R1 detonation matrix"
class="gallery-image"
data-flex-grow="144"
data-flex-basis="347px"
>&lt;/p>
&lt;p>&lt;strong>U2R1 detonation errors.&lt;/strong> Differences among treatments are much smaller than
the timestep trend, so no large mixed-method accuracy advantage follows.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/detonation_u2r2.png"
width="2292"
height="1558"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/detonation_u2r2_hu8092439297612022586.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/detonation_u2r2_hu13057532297519783557.png 1024w"
loading="lazy"
alt="U2R2 detonation matrix"
class="gallery-image"
data-flex-grow="147"
data-flex-basis="353px"
>&lt;/p>
&lt;p>&lt;strong>U2R2 detonation errors.&lt;/strong> At \(8\times10^{-7}\) the endpoint ordering reverses:
coupled has +0.360% error versus +0.943% for Strang and +1.017% for broadA.
A shock preference alone cannot guarantee the better temporal method.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/aposteriori_bace6_matrices/artifacts/detonation_apriori_bace6.png"
width="1710"
height="1535"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/aposteriori_bace6_matrices/artifacts/detonation_apriori_bace6_hu14899193586225092519.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/aposteriori_bace6_matrices/artifacts/detonation_apriori_bace6_hu17231214294150164585.png 1024w"
loading="lazy"
alt="BA-CE6 detonation a-priori check"
class="gallery-image"
data-flex-grow="111"
data-flex-basis="267px"
>&lt;/p>
&lt;p>&lt;strong>The available BA-CE6 detonation evidence is static.&lt;/strong> At the three annotated
prospective steps, its selector overlaps broadA on this saved profile. This
does not establish BA-CE6 speed, nonlinear convergence or runtime. Also note
the convention: near-Strang means \(\chi\) near &lt;strong>one&lt;/strong>, not zero.&lt;/p>
&lt;h2 id="why-n-heptane-and-what-ntc-means">&lt;a href="#why-n-heptane-and-what-ntc-means" class="header-anchor">&lt;/a>Why n-heptane and what NTC means
&lt;/h2>&lt;p>The mechanism has the Seiser/Pitsch/Curran reduced LLNL lineage. LLNL&amp;rsquo;s short
mechanism descends from its older version-38 detailed mechanism, with 159
species and 770 reversible reactions; it is not the latest detailed LLNL
mechanism. &lt;a class="link" href="https://combustion.llnl.gov/archived-mechanisms/alkanes/heptane-reduced-mechanism" target="_blank" rel="noopener"
>LLNL mechanism description&lt;/a>.
The actual DNDSR YAML used here contains &lt;strong>160 species and 1540 directed
reactions&lt;/strong>, as counted in the saved Cantera manifest. It has the existing
low-temperature thermodynamic extension, with constant endpoint heat capacities
below the original interval, to support the solver&amp;rsquo;s 1 K bound. This numerical
extension is not validation of reaction kinetics at cryogenic temperatures.
All reductions use the exact species order; the absorbed last species in this
case is &lt;code>c5h9o1-4&lt;/code>, not nitrogen.&lt;/p>
&lt;h3 id="chemicals-represented">&lt;a href="#chemicals-represented" class="header-anchor">&lt;/a>Chemicals represented
&lt;/h3>&lt;p>&lt;strong>n-Heptane&lt;/strong> is the straight-chain saturated hydrocarbon
\(\mathrm{CH_3(CH_2)_5CH_3}\), with molecular formula \(\mathrm{C_7H_{16}}\);
its mechanism identifier is &lt;code>nc7h16&lt;/code>. In this case it is gaseous fuel, not a
liquid spray. The fresh oxidizer is oxygen diluted by nitrogen. The initial
molar ratio is &lt;strong>n-heptane : oxygen : nitrogen = 1 : 11 : 41.36&lt;/strong>,
corresponding to the stoichiometric mixture. The overall complete-oxidation
balance, not an elementary reaction in the kinetic mechanism, is&lt;/p>
$$
\mathrm{C_7H_{16}}+11\,\mathrm{O_2}
\longrightarrow 7\,\mathrm{CO_2}+8\,\mathrm{H_2O}.
$$&lt;p>The model does not jump directly from fuel to final products: it evolves
small radicals, fragments and oxygenated intermediates through many reactions.
The following groups explain the fields plotted in this study and the
low-temperature pathways relevant to ignition:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Group&lt;/th>
&lt;th>Representative exact identifiers&lt;/th>
&lt;th>Meaning in this study&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Fuel and oxidizer&lt;/td>
&lt;td>&lt;code>nc7h16&lt;/code>, &lt;code>o2&lt;/code>&lt;/td>
&lt;td>Gaseous n-heptane and molecular oxygen.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Bath gas&lt;/td>
&lt;td>&lt;code>n2&lt;/code>&lt;/td>
&lt;td>Nitrogen diluent; contributes to mixture thermodynamics/transport and collision-partner effects, but is the only nitrogen-bearing species.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Major products and smaller molecules&lt;/td>
&lt;td>&lt;code>co2&lt;/code>, &lt;code>h2o&lt;/code>, &lt;code>co&lt;/code>, &lt;code>h2&lt;/code>, &lt;code>ch4&lt;/code>&lt;/td>
&lt;td>Carbon dioxide and water are principal complete-oxidation products; CO, hydrogen and methane also participate in the finite-rate network.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Small radical pool&lt;/td>
&lt;td>&lt;code>h&lt;/code>, &lt;code>o&lt;/code>, &lt;code>oh&lt;/code>, &lt;code>ch3&lt;/code>, &lt;code>hco&lt;/code>&lt;/td>
&lt;td>Hydrogen, oxygen, hydroxyl, methyl and formyl radicals carry the fast reaction chains. OH is shown in the profile comparisons.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Hydrogen peroxide chemistry&lt;/td>
&lt;td>&lt;code>ho2&lt;/code>, &lt;code>h2o2&lt;/code>&lt;/td>
&lt;td>Hydroperoxyl radical and hydrogen peroxide connect radical storage/production to ignition.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Small oxygenated intermediates&lt;/td>
&lt;td>&lt;code>ch2o&lt;/code>, &lt;code>ch3cho&lt;/code>, &lt;code>ch3oh&lt;/code>, &lt;code>ch3coch3&lt;/code>&lt;/td>
&lt;td>Formaldehyde, acetaldehyde, methanol and acetone; formaldehyde is a useful plotted marker of the prepared and reacting kernel.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Heptyl radicals&lt;/td>
&lt;td>&lt;code>c7h15-1&lt;/code> through &lt;code>c7h15-4&lt;/code>&lt;/td>
&lt;td>Fuel-derived radicals with different radical positions, formed after hydrogen abstraction.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Peroxy radicals and hydroperoxides&lt;/td>
&lt;td>&lt;code>c7h15o2-1&lt;/code>, &lt;code>c7h15o2h-1&lt;/code> and their listed isomers&lt;/td>
&lt;td>Oxygen addition creates peroxy chemistry; radicals and stable hydroperoxides are distinct species.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Hydroperoxyalkyl pathway&lt;/td>
&lt;td>&lt;code>c7h14ooh1-3&lt;/code>, &lt;code>c7h14ooh1-3o2&lt;/code> and their listed isomers&lt;/td>
&lt;td>Commonly called QOOH and oxygen-added QOOH families; routes toward low-temperature chain branching.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Ketohydroperoxides&lt;/td>
&lt;td>&lt;code>nc7ket13&lt;/code>, &lt;code>nc7ket23&lt;/code> and the other &lt;code>nc7ket*&lt;/code> entries&lt;/td>
&lt;td>Intermediates whose formation/decomposition can produce OH and promote branching.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Competing fragmentation/oxygenate pathways&lt;/td>
&lt;td>&lt;code>c7h14-1&lt;/code>, &lt;code>c7h14o1-3&lt;/code>, plus smaller C2–C6 species&lt;/td>
&lt;td>Olefins, cyclic ethers and fragments connect alternative propagation pathways to the small-molecule network.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>The pathway roles follow the parent mechanism&amp;rsquo;s reaction-class discussion;
the competition between branching and alternative pathways motivates the NTC
interpretation, but the current CFD plots are not a reaction-path flux or
sensitivity analysis.
&lt;a class="link" href="https://combustion.llnl.gov/sites/combustion/files/2020-11/nc7.pdf" target="_blank" rel="noopener"
>Curran et al., reaction classes and low-temperature branching&lt;/a>.&lt;/p>
&lt;p>&lt;strong>Exact inventory used here:&lt;/strong> Cantera 3.2.0 loads &lt;strong>160 species, 1540
irreversible reaction entries, and zero entries marked reversible&lt;/strong> from the
run&amp;rsquo;s YAML. These are directed kinetic entries; do not report them as 1540
reversible reaction pairs. The historical LLNL description counts 770
reversible reactions and names its reduction “159 species”; the local filename
retains that historical name, but the loaded phase count is authoritative.
The mechanism includes elements C, H, O and N. Since &lt;code>n2&lt;/code> is its only
nitrogen-bearing species, it cannot predict NO/NO2 chemistry. It is also not a
liquid-evaporation, droplet or soot model.&lt;/p>
&lt;p>The &lt;a class="link" href="https://github.com/harryzhou2000/reaction-region-indicator/blob/main/studies/nheptane_two_scale_strang/results/report_curation/mechanism_inventory.json" target="_blank" rel="noopener"
>machine-readable inventory&lt;/a>
records every exact name, elemental composition and one-based phase position,
with mechanism SHA-256
&lt;code>67c3c3b79b328f1942294336a8798d047b51407cac698e7649ed6fc4344f1cef&lt;/code>.
The complete species list is below, in YAML phase order. Names distinguish
positional/electronic isomers and must not be merged merely because their
elemental formulas coincide; for example, &lt;code>ch2&lt;/code> and &lt;code>ch2(s)&lt;/code> are separate
entries. The final absorbed (dependent) closure species is &lt;code>c5h9o1-4&lt;/code>.&lt;/p>
&lt;h3 id="complete-species-list">&lt;a href="#complete-species-list" class="header-anchor">&lt;/a>Complete species list
&lt;/h3>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>YAML positions&lt;/th>
&lt;th>Exact species names&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>1–8&lt;/td>
&lt;td>&lt;code>n2&lt;/code>, &lt;code>ch3&lt;/code>, &lt;code>h&lt;/code>, &lt;code>ch4&lt;/code>, &lt;code>h2&lt;/code>, &lt;code>oh&lt;/code>, &lt;code>h2o&lt;/code>, &lt;code>o&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>9–16&lt;/td>
&lt;td>&lt;code>c2h6&lt;/code>, &lt;code>c2h5&lt;/code>, &lt;code>hco&lt;/code>, &lt;code>co&lt;/code>, &lt;code>co2&lt;/code>, &lt;code>o2&lt;/code>, &lt;code>h2o2&lt;/code>, &lt;code>ho2&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>17–24&lt;/td>
&lt;td>&lt;code>c2h4&lt;/code>, &lt;code>ch3oh&lt;/code>, &lt;code>ch2oh&lt;/code>, &lt;code>ch3o&lt;/code>, &lt;code>ch2o&lt;/code>, &lt;code>c2h2&lt;/code>, &lt;code>c2h3&lt;/code>, &lt;code>c2h&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>25–32&lt;/td>
&lt;td>&lt;code>hcco&lt;/code>, &lt;code>ch2&lt;/code>, &lt;code>ch&lt;/code>, &lt;code>ch2co&lt;/code>, &lt;code>ch2(s)&lt;/code>, &lt;code>pc2h4oh&lt;/code>, &lt;code>ch3co&lt;/code>, &lt;code>ch3cho&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>33–40&lt;/td>
&lt;td>&lt;code>c3h5-s&lt;/code>, &lt;code>c3h4-p&lt;/code>, &lt;code>c3h5-a&lt;/code>, &lt;code>c3h6&lt;/code>, &lt;code>c3h4-a&lt;/code>, &lt;code>ch3chco&lt;/code>, &lt;code>c3h5-t&lt;/code>, &lt;code>c4h6&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>41–48&lt;/td>
&lt;td>&lt;code>nc3h7&lt;/code>, &lt;code>ic3h7&lt;/code>, &lt;code>c3h8&lt;/code>, &lt;code>c5h9&lt;/code>, &lt;code>c4h7&lt;/code>, &lt;code>c4h8-1&lt;/code>, &lt;code>sc4h9&lt;/code>, &lt;code>pc4h9&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>49–56&lt;/td>
&lt;td>&lt;code>ch3coch3&lt;/code>, &lt;code>ch3coch2&lt;/code>, &lt;code>c2h5co&lt;/code>, &lt;code>c2h5cho&lt;/code>, &lt;code>c5h10-1&lt;/code>, &lt;code>ch2cho&lt;/code>, &lt;code>c5h11-1&lt;/code>, &lt;code>c5h11-2&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>57–64&lt;/td>
&lt;td>&lt;code>c2h5o&lt;/code>, &lt;code>c2h5o2&lt;/code>, &lt;code>ch3o2&lt;/code>, &lt;code>ch3o2h&lt;/code>, &lt;code>c3h2&lt;/code>, &lt;code>o2c2h4oh&lt;/code>, &lt;code>c2h4o2h&lt;/code>, &lt;code>c2h3co&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>65–72&lt;/td>
&lt;td>&lt;code>c2h3cho&lt;/code>, &lt;code>c3h5o&lt;/code>, &lt;code>c3h6o1-2&lt;/code>, &lt;code>c3h6ooh1-2&lt;/code>, &lt;code>c3h6ooh2-1&lt;/code>, &lt;code>nc3h7o&lt;/code>, &lt;code>ic3h7o&lt;/code>, &lt;code>nc3h7o2&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>73–80&lt;/td>
&lt;td>&lt;code>ic3h7o2&lt;/code>, &lt;code>c4h7o&lt;/code>, &lt;code>c4h8ooh1-3o2&lt;/code>, &lt;code>c4h8ooh1-3&lt;/code>, &lt;code>nc4ket13&lt;/code>, &lt;code>c4h8ooh1-2&lt;/code>, &lt;code>c4h8o1-3&lt;/code>, &lt;code>pc4h9o2&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>81–88&lt;/td>
&lt;td>&lt;code>c3h3&lt;/code>, &lt;code>hocho&lt;/code>, &lt;code>c2h3o1,2&lt;/code>, &lt;code>nc3h7cho&lt;/code>, &lt;code>nc3h7co&lt;/code>, &lt;code>c3h6cho-2&lt;/code>, &lt;code>ch2ch2coch3&lt;/code>, &lt;code>c2h5coch2&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>89–96&lt;/td>
&lt;td>&lt;code>c2h5coc2h4p&lt;/code>, &lt;code>nc3h7coch2&lt;/code>, &lt;code>nc4h9cho&lt;/code>, &lt;code>nc4h9co&lt;/code>, &lt;code>hoch2o&lt;/code>, &lt;code>c6h13-1&lt;/code>, &lt;code>c6h12-1&lt;/code>, &lt;code>c6h11&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>97–104&lt;/td>
&lt;td>&lt;code>nc7h16&lt;/code>, &lt;code>c7h15-1&lt;/code>, &lt;code>c7h15-2&lt;/code>, &lt;code>c7h15-3&lt;/code>, &lt;code>c7h15-4&lt;/code>, &lt;code>c7h15o2-1&lt;/code>, &lt;code>c7h15o2h-1&lt;/code>, &lt;code>c7h15o2-2&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>105–112&lt;/td>
&lt;td>&lt;code>c7h15o2h-2&lt;/code>, &lt;code>c7h15o2-3&lt;/code>, &lt;code>c7h15o2h-3&lt;/code>, &lt;code>c7h14-1&lt;/code>, &lt;code>c7h14-2&lt;/code>, &lt;code>c7h14-3&lt;/code>, &lt;code>c7h13&lt;/code>, &lt;code>c7h15o2-4&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>113–120&lt;/td>
&lt;td>&lt;code>c7h15o-1&lt;/code>, &lt;code>c7h15o-2&lt;/code>, &lt;code>c7h15o-3&lt;/code>, &lt;code>c7h14ooh1-2&lt;/code>, &lt;code>c7h14ooh1-3&lt;/code>, &lt;code>c7h14ooh1-4&lt;/code>, &lt;code>c7h14ooh2-3&lt;/code>, &lt;code>c7h14ooh2-4&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>121–128&lt;/td>
&lt;td>&lt;code>c7h14ooh2-5&lt;/code>, &lt;code>c7h14ooh3-1&lt;/code>, &lt;code>c7h14ooh3-2&lt;/code>, &lt;code>c7h14ooh3-4&lt;/code>, &lt;code>c7h14ooh3-5&lt;/code>, &lt;code>c7h14ooh3-6&lt;/code>, &lt;code>c7h14ooh4-2&lt;/code>, &lt;code>c7h14ooh4-3&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>129–136&lt;/td>
&lt;td>&lt;code>c7h14o1-3&lt;/code>, &lt;code>c7h14o1-4&lt;/code>, &lt;code>c7h14o2-4&lt;/code>, &lt;code>c7h14o2-5&lt;/code>, &lt;code>c7h14o3-5&lt;/code>, &lt;code>c7h14ooh1-3o2&lt;/code>, &lt;code>c7h14ooh2-3o2&lt;/code>, &lt;code>c7h14ooh2-4o2&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>137–144&lt;/td>
&lt;td>&lt;code>c7h14ooh2-5o2&lt;/code>, &lt;code>c7h14ooh3-1o2&lt;/code>, &lt;code>c7h14ooh3-2o2&lt;/code>, &lt;code>c7h14ooh3-4o2&lt;/code>, &lt;code>c7h14ooh3-5o2&lt;/code>, &lt;code>c7h14ooh3-6o2&lt;/code>, &lt;code>c7h14ooh4-2o2&lt;/code>, &lt;code>c7h14ooh4-3o2&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>145–152&lt;/td>
&lt;td>&lt;code>nc7ket13&lt;/code>, &lt;code>nc7ket23&lt;/code>, &lt;code>nc7ket24&lt;/code>, &lt;code>nc7ket25&lt;/code>, &lt;code>nc7ket31&lt;/code>, &lt;code>nc7ket32&lt;/code>, &lt;code>nc7ket34&lt;/code>, &lt;code>nc7ket35&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>153–160&lt;/td>
&lt;td>&lt;code>nc7ket36&lt;/code>, &lt;code>nc7ket42&lt;/code>, &lt;code>nc7ket43&lt;/code>, &lt;code>nc4h9coch2&lt;/code>, &lt;code>c4h7ooh1-4&lt;/code>, &lt;code>c5h9ooh1-4&lt;/code>, &lt;code>c4h7o1-4&lt;/code>, &lt;code>c5h9o1-4&lt;/code>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="ntc-behavior">&lt;a href="#ntc-behavior" class="header-anchor">&lt;/a>NTC behavior
&lt;/h3>&lt;p>&lt;strong>NTC means negative temperature coefficient.&lt;/strong> Over an intermediate initial
temperature interval, increasing temperature reduces effective low-temperature
reactivity and increases ignition delay. Oxygen-addition/isomerization routes
toward chain branching compete with decomposition and propagation routes;
their changing balance can make ignition delay non-monotonic even though
individual elementary rates accelerate. This concerns induction chemistry,
not a negative temperature response of the already burned gas.
&lt;a class="link" href="https://combustion.llnl.gov/sites/combustion/files/2020-11/nc7.pdf" target="_blank" rel="noopener"
>Curran et al., n-heptane oxidation&lt;/a>.&lt;/p>
&lt;p>The &lt;a class="link" href="https://github.com/harryzhou2000/reaction-region-indicator/blob/main/studies/nheptane_ntc_case_design/REPORT.md" target="_blank" rel="noopener"
>existing Cantera scan&lt;/a>, using
this exact YAML and adiabatic constant-volume reactors, demonstrates at 20 atm
a main-ignition delay increase from &lt;strong>0.977 ms at 830 K to 2.489 ms at 960 K&lt;/strong>.
Ignition is defined there by peak \(\mathrm dT/\mathrm dt\), not the CFD kernel&amp;rsquo;s
2000 K crossing. The two-scale CFD starts after chemical preconditioning:
its short hot continuation is not by itself a fresh demonstration of NTC.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_ntc_case_design/artifacts/ignition_delay_ntc.png"
width="1541"
height="1151"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_ntc_case_design/artifacts/ignition_delay_ntc_hu12423822678362928665.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_ntc_case_design/artifacts/ignition_delay_ntc_hu11079016795233412337.png 1024w"
loading="lazy"
alt="Mechanism NTC scan"
class="gallery-image"
data-flex-grow="133"
data-flex-basis="321px"
>&lt;/p>
&lt;p>&lt;strong>Homogeneous ignition-delay curves.&lt;/strong> The ascending portions demonstrate the
NTC interval in the exact study mechanism; pressure shifts the interval and
delay. This is a mechanism/design test, not a CFD accuracy reference.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_ntc_case_design/artifacts/representative_two_stage_traces.png"
width="1711"
height="1593"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_ntc_case_design/artifacts/representative_two_stage_traces_hu427254278069048225.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_ntc_case_design/artifacts/representative_two_stage_traces_hu11759115341346887656.png 1024w"
loading="lazy"
alt="Two-stage reactor histories"
class="gallery-image"
data-flex-grow="107"
data-flex-basis="257px"
>&lt;/p>
&lt;p>&lt;strong>Low-temperature and main ignition.&lt;/strong> The separated heating events explain
why a single fixed physical step can face slow induction and a rapid runaway.
Each heat-release trace is normalized separately; amplitudes are not comparable.&lt;/p>
&lt;p>The earlier &lt;a class="link" href="https://github.com/harryzhou2000/reaction-region-indicator/blob/main/studies/aposteriori_bace6_matrices/REPORT.md" target="_blank" rel="noopener"
>hot n-heptane posterior matrix&lt;/a>
had 20 completed rows, but no common finely resolved truth and different
coarse-step end times. It demonstrated cost/robustness rather than a clear
accuracy win: at code \(1.6\times10^{-3}\), coupled and broadA capped 3/7 physical
steps, while Strang and BA-CE6 converged 7/7. Typical large-step amortized cost
was about 2 s per printed inner iteration for coupled/broadA versus 0.9–1.0 s
for Strang/BA-CE6 on 64 ranks. Those costs are configuration-specific.&lt;/p>
&lt;h2 id="ignition-plus-front-physical-preparation-and-reference-trajectory">&lt;a href="#ignition-plus-front-physical-preparation-and-reference-trajectory" class="header-anchor">&lt;/a>Ignition plus front: physical preparation and reference trajectory
&lt;/h2>&lt;p>The goal is to put a narrow diffusion-active reacting interface and a broader
chemically sensitive ignition kernel in the &lt;strong>same&lt;/strong> one-dimensional domain.
Use a 10 mm closed tube, 1200 cells (\(8.333\,\mu\mathrm m\)), periodic transverse
width \(25\,\mu\mathrm m\), initially 20 atm and zero velocity. Streamwise walls
reflect waves; boundary interaction is intentional. This is not a free-flame
speed problem and the seeded interface is not an exact steady flame.&lt;/p>
&lt;p>The fresh stoichiometric mixture before preparation is&lt;/p>
$$
Y_{\mathrm{N_2}}=0.7192878080,\quad
Y_{\mathrm{O_2}}=0.2185055960,\quad
Y_{\mathrm{nC_7H_{16}}}=0.0622065960.
$$&lt;p>Its preparation-temperature profile is&lt;/p>
$$
T_{\rm prep}(x)=750\,\mathrm K+80\,\mathrm K
\exp\left[-\left(\frac{x-7\,\mathrm{mm}}{1.8\,\mathrm{mm}}\right)^2\right].
$$&lt;p>Evolve those parcels isobarically for 1.3273 ms. Separately equilibrate the
750 K fresh mixture at fixed enthalpy/pressure to make the burned seed. Blend
prepared and burned compositions &lt;strong>and enthalpy&lt;/strong>, using a smooth transition:&lt;/p>
$$
\xi=\operatorname{clip}\left(\frac{x-2\,\mathrm{mm}}{0.2\,\mathrm{mm}}+\frac12,0,1\right),
\quad w=\xi^3(10-15\xi+6\xi^2),
$$$$
Y(x)=(1-w)Y_b+wY_a(x),\qquad
\mathfrak h(x)=(1-w)\mathfrak h_b+w\mathfrak h_a(x).
$$&lt;p>Here \(a,b\) mean aged and burned, and \(\mathfrak h\) is mixture specific enthalpy,
not the pressure sensor. Recover temperature from \((\mathfrak h,p,Y)\) with
Cantera; interpolate the common \(T/Y\) table in the solver and derive density
and conservative energy through its EOS. No arbitrary radical mass fractions
are inserted. The actual initial kernel maximum is &lt;strong>1278.41 K&lt;/strong>, while the
burned seed is about &lt;strong>2605.52 K&lt;/strong>; 750–830 K is the preparation range, not the
final CFD initial-temperature range.&lt;/p>
&lt;p>Full Strang/ESDIRK2 completes a 0–25 μs pilot and a verified restart continuation
to 40 μs, with code ceiling \(10^{-4}\) (0.263852 μs). The first run has 95/95
converged physical steps; the continuation adds 62/62. The comparison uses
P1 FV, corrected reactive transport, &lt;code>rhsFPPMode=2&lt;/code>, 10–400 inner iterations,
pseudo-CFL ramp 1→100 in ten iterations and density stopping ratio \(10^{-3}\).
The combined profile history removes the overlapped restart tail.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/candidate_assessment/evolution_profiles.png"
width="2344"
height="1936"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/candidate_assessment/evolution_profiles_hu3006589859917549681.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/candidate_assessment/evolution_profiles_hu17924897049849357249.png 1024w"
loading="lazy"
alt="Small-step reference trajectory"
class="gallery-image"
data-flex-grow="121"
data-flex-basis="290px"
>&lt;/p>
&lt;p>&lt;strong>Small-step full-Strang trajectory through 40 μs.&lt;/strong> Temperature, pressure,
density and velocity separate the reacting interface near 2 mm from kernel
runaway near 7 mm. Expansion and pressure waves show this is not a homogeneous
constant-volume reactor. These profiles are a practical baseline, not exact truth.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/candidate_assessment/evolution_species.png"
width="2334"
height="1898"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/candidate_assessment/evolution_species_hu14576566506931648456.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/candidate_assessment/evolution_species_hu6481958315941937422.png 1024w"
loading="lazy"
alt="Reference species evolution"
class="gallery-image"
data-flex-grow="122"
data-flex-basis="295px"
>&lt;/p>
&lt;p>&lt;strong>Species evolution on the same slices.&lt;/strong> Oxygen consumption, formaldehyde
loss, evolving CO and increased OH identify the main kernel reaction. Most
original fuel was already transformed by preparation, so fuel alone is a poor
runaway marker.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/candidate_assessment/transport_budgets_26us.png"
width="2372"
height="1994"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/candidate_assessment/transport_budgets_26us_hu6803737902623757157.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/candidate_assessment/transport_budgets_26us_hu6607988758662607934.png 1024w"
loading="lazy"
alt="Local transport budgets"
class="gallery-image"
data-flex-grow="118"
data-flex-basis="285px"
>&lt;/p>
&lt;p>&lt;strong>Cell-mean budget estimates near the runaway.&lt;/strong> Molecular diffusion matters
locally at the narrow interface; chemical heating and flow compression/expansion
dominate much of the kernel. These offline estimates motivate regional splitting,
but do not prove causality by removing transport from the CFD.&lt;/p>
&lt;h2 id="short-window-comparison-interface-and-ignition-errors">&lt;a href="#short-window-comparison-interface-and-ignition-errors" class="header-anchor">&lt;/a>Short-window comparison: interface and ignition errors
&lt;/h2>&lt;p>Every comparison starts from the &lt;strong>same saved step-90 state at
23.74670185 μs&lt;/strong>, ends at 32 μs, and uses serial 64-rank execution on &lt;code>cs&lt;/code>.
The provisional reference advances that restart with Strang at code
\(5\times10^{-5}\) (0.131926 μs), 63 physical steps and 126 converged stages.
It refines only the short window; it does not remove error accumulated before
the common restart or establish spatial convergence.&lt;/p>
&lt;p>Define interface \(I=[1,3)\) mm (240 cells) and ignition kernel \(K=[3,10]\) mm
(840 cells). On this uniform grid, for either region \(R\),&lt;/p>
$$
E_{\rm mean}^{R}=\frac1{N_R}\sum_{i\in R}|T_i-T_{i,\rm ref}|,\qquad
E_{\rm max}^{R}=\max_{i\in R}|T_i-T_{i,\rm ref}|.
$$&lt;p>Errors are endpoint differences in kelvin at fixed spatial cells. No front
alignment is applied; displacement of a steep interface contributes to error.
The kernel includes its cooler shoulders, not only the hottest reacting cells.
Mean error is not signed bias, and a small mean can hide a large local maximum.&lt;/p>
&lt;p>&lt;strong>What does zero error mean?&lt;/strong> In these temperature bar charts, the zero is
defined by the Strang \(\Delta t_{\rm code}=5\times10^{-5}\) endpoint profile,
not by an exact solution or Cantera reactor. Thus \(\Delta T_i=T_i-T_{i,\rm ref}\).
An exactly zero mean or maximum absolute difference means every sampled
temperature in that region matches the reference at 32 μs; positive and
negative errors cannot cancel. It says nothing by itself about other fields,
earlier times, or agreement with the continuum solution. The reference has
zero error against itself by construction. Rounded displayed zeros need not
mean bitwise identity.&lt;/p>
&lt;p>&lt;strong>What is the dotted “reference refinement” line?&lt;/strong> It is the same regional
mean or maximum absolute temperature difference, but between the two Strang
controls at code steps \(10^{-4}\) and \(5\times10^{-5}\). Both start from the
same checkpoint, on the same mesh, and end at 32 μs. This measures sensitivity
to halving the reference timestep. It is not a fourth/fifth method&amp;rsquo;s result,
not a convergence tolerance, and &lt;strong>not the unknown error of the finer run&lt;/strong>.
The plot legend now explicitly names the two Strang steps.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Dotted-line quantity&lt;/th>
&lt;th style="text-align: right">Interface [K]&lt;/th>
&lt;th style="text-align: right">Ignition kernel [K]&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Mean absolute Strang step-halving difference&lt;/td>
&lt;td style="text-align: right">7.66&lt;/td>
&lt;td style="text-align: right">1.52&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Maximum absolute Strang step-halving difference&lt;/td>
&lt;td style="text-align: right">183.29&lt;/td>
&lt;td style="text-align: right">30.12&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>A bar below the dotted line is closer to the fine reference than the coarser
Strang control is; it is not thereby proven more physically accurate. Two
resolutions alone neither establish an asymptotic order nor provide a rigorous
error bound. No Richardson correction or extrapolated truth is used here.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/reference_refinement.png"
width="2333"
height="2014"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/reference_refinement_hu11735017477323763886.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/reference_refinement_hu2159244817243007240.png 1024w"
loading="lazy"
alt="Reference refinement"
class="gallery-image"
data-flex-grow="115"
data-flex-basis="278px"
>&lt;/p>
&lt;p>&lt;strong>Reference sensitivity at 32 μs.&lt;/strong> Strang at \(10^{-4}\) versus \(5\times10^{-5}\)
differs by interface mean/max &lt;strong>7.66/183.29 K&lt;/strong>, and kernel mean/max
&lt;strong>1.52/30.12 K&lt;/strong>. This is an empirical refinement difference, not a rigorous
error bound, and prevents overinterpreting small improvements.&lt;/p>
&lt;h3 id="matched-actual-code-step-4times10-4">&lt;a href="#matched-actual-code-step-4times10-4" class="header-anchor">&lt;/a>Matched actual code step \(4\times10^{-4}\)
&lt;/h3>&lt;p>All four methods use seven full steps of 1.055409 μs and a common final
shortened step: eight physical steps and sixteen implicit stages. Physical
CFL 500 does not clip their histories. The earlier CFL-200 runs with the same
nominal ceiling had different actual steps and are kept separately in the
study report, not mixed into this table.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Treatment&lt;/th>
&lt;th style="text-align: right">Interface mean / max [K]&lt;/th>
&lt;th style="text-align: right">Kernel mean / max [K]&lt;/th>
&lt;th style="text-align: right">Stages converged / capped&lt;/th>
&lt;th style="text-align: right">Wall [min]&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Coupled&lt;/td>
&lt;td style="text-align: right">18.04 / 293.91&lt;/td>
&lt;td style="text-align: right">44.13 / 684.48&lt;/td>
&lt;td style="text-align: right">16 / 0&lt;/td>
&lt;td style="text-align: right">16.34&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Strang&lt;/td>
&lt;td style="text-align: right">19.43 / 575.75&lt;/td>
&lt;td style="text-align: right">11.60 / 346.22&lt;/td>
&lt;td style="text-align: right">16 / 0&lt;/td>
&lt;td style="text-align: right">7.69&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>broadA&lt;/td>
&lt;td style="text-align: right">18.45 / 365.36&lt;/td>
&lt;td style="text-align: right">14.20 / 298.20&lt;/td>
&lt;td style="text-align: right">&lt;strong>14 / 2&lt;/strong>&lt;/td>
&lt;td style="text-align: right">38.61&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Balance&lt;/td>
&lt;td style="text-align: right">&lt;strong>16.85&lt;/strong> / 378.28&lt;/td>
&lt;td style="text-align: right">&lt;strong>10.54 / 251.70&lt;/strong>&lt;/td>
&lt;td style="text-align: right">16 / 0&lt;/td>
&lt;td style="text-align: right">8.96&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>The broadA endpoint is shown diagnostically: one physical step contains two
capped stages, so its errors are not accepted as fully converged evidence.
Balance has no snapped fully coupled cells in the last frozen field: &lt;strong>2.0%
mixed, 98.0% Strang&lt;/strong>, mean \(1-\chi=0.00701\). broadA has 1.33% coupled,
16.08% mixed and 82.58% Strang, mean \(1-\chi=0.06951\). These are whole-domain
cell fractions, not fractions of heat release or runtime.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/regional_errors_4em4.png"
width="2363"
height="2014"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/regional_errors_4em4_hu4629360778072138756.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/regional_errors_4em4_hu1690983186353967236.png 1024w"
loading="lazy"
alt="Regional mean and maximum errors"
class="gallery-image"
data-flex-grow="117"
data-flex-basis="281px"
>&lt;/p>
&lt;p>&lt;strong>The key regional error comparison.&lt;/strong> Hatched broadA bars denote capped
stages. Dotted levels are the separate reference-refinement differences.
Here \(\Delta T=T-T_{\rm ref}\); the zero baseline is agreement with the fine
Strang endpoint, not exact physical truth. Balance reduces the kernel mean
error by about 76% and its maximum by about
63% relative to coupled, but coupled has the smallest interface maximum.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/balance_comparison/endpoints_4em4.png"
width="2343"
height="1994"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/balance_comparison/endpoints_4em4_hu6146835126313961162.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/balance_comparison/endpoints_4em4_hu221902326082520861.png 1024w"
loading="lazy"
alt="Matched final profiles"
class="gallery-image"
data-flex-grow="117"
data-flex-basis="282px"
>&lt;/p>
&lt;p>&lt;strong>Temperature and fuel at the matched endpoint.&lt;/strong> The interface and kernel
are separately enlarged; the fine Strang curve is the provisional reference.
Localized peak errors arise near steep fronts and kernel shoulders.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/temperature_difference_4em4.png"
width="2290"
height="1436"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/temperature_difference_4em4_hu9048589527204483338.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/temperature_difference_4em4_hu7496915191520388644.png 1024w"
loading="lazy"
alt="Signed endpoint errors"
class="gallery-image"
data-flex-grow="159"
data-flex-basis="382px"
>&lt;/p>
&lt;p>&lt;strong>Signed spatial error, not only summary norms.&lt;/strong> Coupled&amp;rsquo;s kernel mismatch
is broad enough to increase the mean strongly; interface shifts give narrow
positive/negative error structures. A better mean does not imply every cell
is closer to the reference.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/ignition_history_4em4.png"
width="2323"
height="1607"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/ignition_history_4em4_hu4327851567023705550.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/ignition_history_4em4_hu6924005814935627695.png 1024w"
loading="lazy"
alt="Short-window ignition histories"
class="gallery-image"
data-flex-grow="144"
data-flex-basis="346px"
>&lt;/p>
&lt;p>&lt;strong>Kernel maximum through the restart window.&lt;/strong> The dotted 2000 K line is a
convenient spatial marker, not the homogeneous peak-heating ignition definition.
Crossings are interpolated between saved steps and inherit cadence uncertainty.&lt;/p>
&lt;p>&lt;img src="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/selectors_4em4.png"
width="2317"
height="1859"
srcset="https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/selectors_4em4_hu1548891134603071626.png 480w, https://harryzhou2000.github.io/hugo-harry/hugo-harry/p/reactive-region-selection-broada-bace6-balance/figures/studies/nheptane_two_scale_strang/artifacts/report_curation/selectors_4em4_hu4920233980457504385.png 1024w"
loading="lazy"
alt="Real-run selector comparison"
class="gallery-image"
data-flex-grow="124"
data-flex-basis="299px"
>&lt;/p>
&lt;p>&lt;strong>Final temperature and last frozen selector.&lt;/strong> Balance restricts mixing much
more than broadA. The selector was evaluated at the start of the final shortened
step; it is not a new a-priori evaluation of the endpoint at the full nominal step.&lt;/p>
&lt;p>At \(2\times10^{-4}\), all three original treatments converge: coupled,
Strang and broadA have interface means &lt;strong>18.40, 17.21, 23.29 K&lt;/strong> and kernel
means &lt;strong>9.15, 4.12, 3.56 K&lt;/strong>. BroadA is therefore not uniformly better as the
step decreases. Balance has not been run at that smaller step.&lt;/p>
&lt;h3 id="why-these-results-motivate-balance-but-do-not-finish-validation">&lt;a href="#why-these-results-motivate-balance-but-do-not-finish-validation" class="header-anchor">&lt;/a>Why these results motivate Balance, but do not finish validation
&lt;/h3>&lt;p>The strongest present result is a regional tradeoff: coupled has much worse
kernel accuracy at matched large step, while Strang has a worse interface
maximum. Balance reduces both kernel norms relative to coupled and both
interface norms relative to Strang, with every stage converged. Its runtime
is about 17% above Strang and 45% below coupled in this one comparison.&lt;/p>
&lt;p>However, Balance&amp;rsquo;s mean-error gains over Strang are only 2.58 K at the
interface and 1.06 K in the kernel, smaller than the corresponding reference
refinement differences. Coupled still wins interface maximum error. The
candidate and older controls also use different executable hashes, although
the isolated patch adds mode 3 without changing old modes; no repeated-run
timing distribution is available. This is a promising matched-step result,
&lt;strong>not a universal or reference-independent superiority claim&lt;/strong>.&lt;/p>
&lt;h3 id="reserved-8times10-4-results">&lt;a href="#reserved-8times10-4-results" class="header-anchor">&lt;/a>Reserved \(8\times10^{-4}\) results
&lt;/h3>&lt;p>All numerical cells below remain placeholders until terminal reduction,
restart identity, actual timestep histories and stage convergence are checked.
The intended step is 2.110818 μs with physical CFL 1000; four steps would reach
the endpoint if unclipped. No half-step smoke result substitutes for this test.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Treatment&lt;/th>
&lt;th>Numerical assessment&lt;/th>
&lt;th>Interface mean / max&lt;/th>
&lt;th>Kernel mean / max&lt;/th>
&lt;th>Convergence / wall&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Coupled&lt;/td>
&lt;td>Failure observed; terminal reduction pending&lt;/td>
&lt;td>—&lt;/td>
&lt;td>—&lt;/td>
&lt;td>—&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Strang&lt;/td>
&lt;td>Pending integration&lt;/td>
&lt;td>—&lt;/td>
&lt;td>—&lt;/td>
&lt;td>—&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>broadA&lt;/td>
&lt;td>Pending integration&lt;/td>
&lt;td>—&lt;/td>
&lt;td>—&lt;/td>
&lt;td>—&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Balance&lt;/td>
&lt;td>Pending integration&lt;/td>
&lt;td>—&lt;/td>
&lt;td>—&lt;/td>
&lt;td>—&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;strong>Execution-only update, 03:47 UTC 29 September:&lt;/strong> the monitor observed coupled
exit 134 after about 52.9 minutes, following a Cantera UV-state-recovery error
and &lt;code>ChemicalSource.cpp:757&lt;/code> assertion. The serial launcher advanced to Strang.
No completed coupled endpoint or accuracy number is inferred. This note is not
a continuously refreshed queue dashboard; the three remaining rows retain
placeholders in this curated edition even if their live status later changes.&lt;/p>
&lt;p>&lt;strong>Reserved figures:&lt;/strong> matched endpoint profiles, interface/kernel mean and
maximum errors, actual timestep history, and convergence/runtime at
\(8\times10^{-4}\). No empty axes or fabricated zero-error curves are drawn.&lt;/p>
&lt;h2 id="what-should-be-tested-next">&lt;a href="#what-should-be-tested-next" class="header-anchor">&lt;/a>What should be tested next
&lt;/h2>&lt;ol>
&lt;li>Complete the already-authorized larger-step comparison and retain failed
or capped rows visibly. Do not optimize the selector against failed outputs.&lt;/li>
&lt;li>Refine the common-window reference once more, preferably with a second
converged temporal treatment, before claiming small Balance-vs-Strang wins.&lt;/li>
&lt;li>Replay Balance on the H2/O2 flame/detonation snapshot controls before any
posterior extension. It must not trade away broadA&amp;rsquo;s useful flame band.&lt;/li>
&lt;li>Check threshold robustness around the selected nice values, with fixed
masks and metrics. A narrow “winning” coefficient is not sufficient.&lt;/li>
&lt;li>Keep equal-step accuracy primary. Timing supports a possible benefit here,
but chemistry kernels, load and inner convergence still confound broad
efficiency claims. No extra run is authorized by this reporting list.&lt;/li>
&lt;/ol>
&lt;h2 id="provenance-and-local-reproduction">&lt;a href="#provenance-and-local-reproduction" class="header-anchor">&lt;/a>Provenance and local reproduction
&lt;/h2>&lt;p>The &lt;a class="link" href="https://github.com/harryzhou2000/reaction-region-indicator/blob/main/studies/nheptane_two_scale_strang/RUN_MANIFEST.md" target="_blank" rel="noopener"
>study manifest&lt;/a> and
&lt;a class="link" href="https://github.com/harryzhou2000/reaction-region-indicator/blob/main/studies/nheptane_two_scale_strang/results/report_curation/evidence.json" target="_blank" rel="noopener"
>frozen curation evidence&lt;/a>
record source hashes, all compact inputs, regional metrics, flame coverage and
the 52-row detonation table. Base solver commit:
&lt;code>b7cb11e7d53b24346c63128a1a2db335b4d0ac04&lt;/code>. Balance uses the isolated
&lt;code>codex/rri-diffusion-balance&lt;/code> worktree with a patch that was uncommitted at build time, SHA-256
&lt;code>ed2e81a38584b33c672a15126b41ac40217f8953df37b7ee8b86000db18dd614&lt;/code> and executable
SHA-256 &lt;code>d02b034370e55c33ca4fe31e1015d5f1b82006418a452c2c713a081dc6362eda&lt;/code>.
It must not be described as a clean committed build. The original controls use
executable SHA-256 &lt;code>198979b0ea9b8cb8ab0f5918ad7da04d0a486bc4035da998beec915aad9f0f5e&lt;/code>.&lt;/p>
&lt;p>The Balance source is now published as DNDSR commit
&lt;code>c8de3c508f87c7b67d05bfff99d6809519a084a8&lt;/code> on
&lt;code>codex/rri-diffusion-balance&lt;/code>. The commit hook changed only whitespace relative
to the recorded run patch. The original patch and build hashes remain intact:
publication did not rebuild or replace the running executable.&lt;/p>
&lt;p>Run from this repository with NumPy and Matplotlib installed:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">python studies/nheptane_two_scale_strang/scripts/curate_reports.py
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">python studies/nheptane_two_scale_strang/scripts/plot_candidate.py
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">python studies/nheptane_two_scale_strang/scripts/plot_comparison.py
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">python studies/nheptane_two_scale_strang/scripts/analyze_balance.py
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>The first command regenerates dated-summary PNG/PDF figures and evidence from
compact arrays, &lt;strong>excluding all \(8\times10^{-4}\) posterior rows by design&lt;/strong>.
It does not rewrite the narrative reports or start a solver. The other scripts
reproduce the trajectory, earlier comparisons and frozen selectors. The
NTC/flame figures retain their source-study reproduction instructions. No raw
VTU/VTKHDF or remote access is needed to regenerate the illustrated profiles.&lt;/p></description></item></channel></rss>