---
title: Order of accuracy
summary: Convergence studies with exact solutions. The design rate p + 1 is required where it is established (the advected density wave, steady manufactured solutions on Cartesian meshes, heat conduction, convection-dominated flow); elsewhere the guaranteed rate p is required and the observed rate is reported.
section: verification
order: 3
level: 2
study: mms_euler
studies: [density_wave, isentropic_vortex, mms_navier_stokes, diffusion_1d]
keywords: [convergence, manufactured solution, isentropic vortex, order, regime]
---
<!-- gyre docs: expanded Markdown of verification/order-of-accuracy.md (generated tables, verification numbers and chart data are written out). Base level of this page: L2 Practice; passages at another level are bracketed by 'begin level N' / 'end level N' comments and start with [LN Name]. Built from revision ceb1f4b0be. -->

## Advected density wave

**Verification status: Advected density wave** (study `density_wave`): **PASSED**, 4 of 4 checks passed, 40.98 s.

A smooth density wave carried by a uniform flow is an exact solution of the Euler equations. It isolates the convective operator and the explicit time integrator. The density is advected linearly, so the design order p + 1 of the split-form DGSEM with a Roe interface flux is what the checks require.

| Check | Value | Expected | Result |
|---|---|---|---|
| p = 1: observed order (finest pair) | 1.92624 | >= 1.80 (design rate p + 1 = 2, tolerance 0.2) | pass |
| p = 2: observed order (finest pair) | 2.99425 | >= 2.80 (design rate p + 1 = 3, tolerance 0.2) | pass |
| p = 3: observed order (finest pair) | 3.99753 | >= 3.80 (design rate p + 1 = 4, tolerance 0.2) | pass |
| p = 4: observed order (finest pair) | 5.01128 | >= 4.80 (design rate p + 1 = 5, tolerance 0.2) | pass |

Run notes: Observed order minus the design rate p + 1 on the finest mesh pair, over all degrees: -0.07 to +0.01.

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T10:22:56-0500; device gpu · NVIDIA GeForce RTX 3060 Ti; quick suite. **Revision check: Same code as this build.** Produced by 39979fcf902ad6116eb550b881b4278d4599c8e2. Every commit between it and the commit this site was built from (ceb1f4b0bed41de53e586df10858079f5a2bcdd8) changes only documentation text, evidence records or bookkeeping: the code is the same. Full record: [density_wave.json](../data/verification/density_wave.json).

**Chart: Density error after convection** (Advected density wave). Convergence chart of L2 error of density against h, x axis log, y axis log; 4 series. The table holds the plotted data. Reference slopes drawn: 2 (h^2), 3 (h^3), 4 (h^4), 5 (h^5).

| h | p = 1 | p = 2 | p = 3 | p = 4 |
|---|---|---|---|---|
| 0.125 | 0.0244511 | 0.00125525 | 5.2276e-05 | 2.0736e-06 |
| 0.0625 | 0.00716847 | 1.6201e-04 | 3.4487e-06 | 6.8806e-08 |
| 0.03125 | 0.00188612 | 2.0333e-05 | 2.1592e-07 | 2.1334e-09 |

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T10:22:56-0500; device gpu · NVIDIA GeForce RTX 3060 Ti; quick suite. **Revision check: Same code as this build.** Produced by 39979fcf902ad6116eb550b881b4278d4599c8e2. Every commit between it and the commit this site was built from (ceb1f4b0bed41de53e586df10858079f5a2bcdd8) changes only documentation text, evidence records or bookkeeping: the code is the same. Full record: [density_wave.json](../data/verification/density_wave.json).

A density wave carried by a uniform flow exercises the convective operator, the interface flux
and the time integrator in a setting where the exact solution is known. The study requires the
design order $p+1$ (tolerance 0.2) for every degree tested.

<!-- begin level 3 (Mechanics) -->
**[L3 Mechanics] Table**

**Table: Errors and observed orders** (Advected density wave)

| p | N | L2 error | order |
|---|---|---|---|
| 1 | 8 | 0.0244511 | — |
| 1 | 16 | 0.00716847 | 1.77016 |
| 1 | 32 | 0.00188612 | 1.92624 |
| 2 | 8 | 0.00125525 | — |
| 2 | 16 | 1.6201e-04 | 2.95377 |
| 2 | 32 | 2.0333e-05 | 2.99425 |
| 3 | 8 | 5.2276e-05 | — |
| 3 | 16 | 3.4487e-06 | 3.92201 |
| 3 | 32 | 2.1592e-07 | 3.99753 |
| 4 | 8 | 2.0736e-06 | — |
| 4 | 16 | 6.8806e-08 | 4.91346 |
| 4 | 32 | 2.1334e-09 | 5.01128 |

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T10:22:56-0500; device gpu · NVIDIA GeForce RTX 3060 Ti; quick suite. **Revision check: Same code as this build.** Produced by 39979fcf902ad6116eb550b881b4278d4599c8e2. Every commit between it and the commit this site was built from (ceb1f4b0bed41de53e586df10858079f5a2bcdd8) changes only documentation text, evidence records or bookkeeping: the code is the same. Full record: [density_wave.json](../data/verification/density_wave.json).

<!-- end level 3 -->

## Isentropic vortex

**Verification status: Isentropic vortex convection** (study `isentropic_vortex`): **PASSED**, 10 of 10 checks passed, 65.18 s.

A strong isentropic vortex convected through a periodic domain for one time unit, on Cartesian meshes and on meshes warped by 4 % of the domain size (degree-4 geometry). The order checks require the rate p that consistency guarantees, not the design rate p + 1, which is not established for this strongly nonlinear unsteady problem. One case is repeated with a five-fold smaller time step to test whether the measured error is spatial, and the error on curved meshes is required to stay within a factor 1.5 of the Cartesian one.

| Check | Value | Expected | Result |
|---|---|---|---|
| p = 2, Cartesian: observed order (finest pair) | 2.59602 | >= 1.80 (guaranteed rate p = 2, tolerance 0.2; design rate 3) | pass |
| p = 3, Cartesian: observed order (finest pair) | 3.48624 | >= 2.80 (guaranteed rate p = 3, tolerance 0.2; design rate 4) | pass |
| p = 4, Cartesian: observed order (finest pair) | 4.051 | >= 3.80 (guaranteed rate p = 4, tolerance 0.2; design rate 5) | pass |
| p = 2, curved: observed order (finest pair) | 2.62798 | >= 1.80 (guaranteed rate p = 2, tolerance 0.2; design rate 3) | pass |
| p = 2: curved / Cartesian error on the finest mesh | 1.00616 | < 1.5 | pass |
| p = 3, curved: observed order (finest pair) | 3.52522 | >= 2.80 (guaranteed rate p = 3, tolerance 0.2; design rate 4) | pass |
| p = 3: curved / Cartesian error on the finest mesh | 0.972173 | < 1.5 | pass |
| p = 4, curved: observed order (finest pair) | 4.17275 | >= 3.80 (guaranteed rate p = 4, tolerance 0.2; design rate 5) | pass |
| p = 4: curved / Cartesian error on the finest mesh | 0.995977 | < 1.5 | pass |
| time-step independence (p = 4, N = 16): relative change of the error for a 5x smaller step | 8.7907e-08 | < 1e-3 | pass |

Run notes: Observed orders on the finest mesh pair: p = 2: 2.60 (Cartesian), 2.63 (curved); p = 3: 3.49 (Cartesian), 3.53 (curved); p = 4: 4.05 (Cartesian), 4.17 (curved). All of them lie between the guaranteed rate p and the design rate p + 1. Observed order minus the design rate: -0.95 to -0.37. A five-fold smaller time step changed the error of the p = 4, N = 16 case by a relative 8.8e-08: at that resolution the error is spatial, so time integration does not explain a rate below p + 1. Curved-to-Cartesian error ratio on the finest meshes: 0.97 to 1.01.

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T10:24:02-0500; device gpu · NVIDIA GeForce RTX 3060 Ti; quick suite. **Revision check: Same code as this build.** Produced by 39979fcf902ad6116eb550b881b4278d4599c8e2. Every commit between it and the commit this site was built from (ceb1f4b0bed41de53e586df10858079f5a2bcdd8) changes only documentation text, evidence records or bookkeeping: the code is the same. Full record: [isentropic_vortex.json](../data/verification/isentropic_vortex.json).

**Chart: Density error at t = 1** (Isentropic vortex convection). Convergence chart of normalised L2 error of density against h, x axis log, y axis log; 6 series. The table holds the plotted data. Reference slopes drawn: 3 (h^3), 4 (h^4), 5 (h^5). Reference lines show the design rate p + 1.

| series | h | normalised L2 error of density |
|---|---|---|
| p = 2, Cartesian | 1 | 0.00272098 |
| p = 2, Cartesian | 0.5 | 4.6335e-04 |
| p = 2, Cartesian | 0.25 | 7.6634e-05 |
| p = 3, Cartesian | 1 | 4.8464e-04 |
| p = 3, Cartesian | 0.5 | 4.3365e-05 |
| p = 3, Cartesian | 0.25 | 3.8697e-06 |
| p = 4, Cartesian | 2 | 0.00140628 |
| p = 4, Cartesian | 1 | 7.4780e-05 |
| p = 4, Cartesian | 0.5 | 4.5114e-06 |
| p = 2, curved | 1 | 0.00278432 |
| p = 2, curved | 0.5 | 4.7664e-04 |
| p = 2, curved | 0.25 | 7.7106e-05 |
| p = 3, curved | 1 | 5.0349e-04 |
| p = 3, curved | 0.5 | 4.3313e-05 |
| p = 3, curved | 0.25 | 3.7620e-06 |
| p = 4, curved | 2 | 0.00151026 |
| p = 4, curved | 1 | 8.1038e-05 |
| p = 4, curved | 0.5 | 4.4933e-06 |

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T10:24:02-0500; device gpu · NVIDIA GeForce RTX 3060 Ti; quick suite. **Revision check: Same code as this build.** Produced by 39979fcf902ad6116eb550b881b4278d4599c8e2. Every commit between it and the commit this site was built from (ceb1f4b0bed41de53e586df10858079f5a2bcdd8) changes only documentation text, evidence records or bookkeeping: the code is the same. Full record: [isentropic_vortex.json](../data/verification/isentropic_vortex.json).

<!-- begin level 2 (Practice) -->
**[L2 Practice] What the study requires**

For this strongly nonlinear unsteady problem the design rate $p+1$ is not established, so the
order checks require the rate $p$ that consistency guarantees (tolerance 0.2). Reduced rates
are a documented characteristic of Gauss–Lobatto collocation schemes for nonlinear problems.
Two further checks: the error on curved meshes (4 % warp, degree-4 geometry) must stay within
a factor 1.5 of the Cartesian one at each degree, and one case is repeated with a five-fold
smaller time step. The orders that were observed, their distance from the design rate and the
curved-to-Cartesian error ratios are stated in the run notes under the status above, which the
study generates from its own numbers.

<!-- end level 2 -->

<!-- begin level 3 (Mechanics) -->
**[L3 Mechanics] Table, and the time-step test**

**Table: Errors and observed orders** (Isentropic vortex convection)

| mesh | p | N | L2 error | order |
|---|---|---|---|---|
| Cartesian | 2 | 16 | 0.00272098 | — |
| Cartesian | 2 | 32 | 4.6335e-04 | 2.55397 |
| Cartesian | 2 | 64 | 7.6634e-05 | 2.59602 |
| Cartesian | 3 | 16 | 4.8464e-04 | — |
| Cartesian | 3 | 32 | 4.3365e-05 | 3.48233 |
| Cartesian | 3 | 64 | 3.8697e-06 | 3.48624 |
| Cartesian | 4 | 8 | 0.00140628 | — |
| Cartesian | 4 | 16 | 7.4780e-05 | 4.23308 |
| Cartesian | 4 | 32 | 4.5114e-06 | 4.051 |
| curved | 2 | 16 | 0.00278432 | — |
| curved | 2 | 32 | 4.7664e-04 | 2.54636 |
| curved | 2 | 64 | 7.7106e-05 | 2.62798 |
| curved | 3 | 16 | 5.0349e-04 | — |
| curved | 3 | 32 | 4.3313e-05 | 3.5391 |
| curved | 3 | 64 | 3.7620e-06 | 3.52522 |
| curved | 4 | 8 | 0.00151026 | — |
| curved | 4 | 16 | 8.1038e-05 | 4.22005 |
| curved | 4 | 32 | 4.4933e-06 | 4.17275 |

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T10:24:02-0500; device gpu · NVIDIA GeForce RTX 3060 Ti; quick suite. **Revision check: Same code as this build.** Produced by 39979fcf902ad6116eb550b881b4278d4599c8e2. Every commit between it and the commit this site was built from (ceb1f4b0bed41de53e586df10858079f5a2bcdd8) changes only documentation text, evidence records or bookkeeping: the code is the same. Full record: [isentropic_vortex.json](../data/verification/isentropic_vortex.json).

A fourth-order time integrator at fixed CFL number has an error that falls like $h^4$, so a
measured order near 4 at $p = 4$ invites the explanation that time integration dominates. The
study tests this directly: a $p = 4$ case is repeated with a five-fold smaller time step, and
the check requires the error to change by less than one part in a thousand. When it passes,
the error at that resolution is spatial and time integration does not explain a rate below
$p + 1$; the run notes state which conclusion the numbers of the run support.

<!-- end level 3 -->

## Manufactured solution: Euler

**Verification status: Manufactured solution: Euler** (study `mms_euler`): **PASSED**, 6 of 6 checks passed, 212.5 s.

A smooth trigonometric state is forced to be an exact steady solution by a source term generated with automatic differentiation of the physics kernels. Dirichlet data enter weakly through the interface Riemann flux. The nonlinear system is solved with the pseudo-transient Newton–Krylov solver, started from the nodal values of the exact solution, whose residual is the truncation error. The study therefore verifies the spatial operator and the boundary treatment, and that the implicit solver removes that residual; it does not test convergence from a distant initial state (see the solver-convergence study). Curved meshes are warped by 5 % with degree-4 geometry.

| Check | Value | Expected | Result |
|---|---|---|---|
| p = 1, Cartesian: observed order (finest pair) | 1.9109 | >= 1.75 (design rate p + 1 = 2, tolerance 0.25) | pass |
| p = 2, Cartesian: observed order (finest pair) | 2.96919 | >= 2.75 (design rate p + 1 = 3, tolerance 0.25) | pass |
| p = 3, Cartesian: observed order (finest pair) | 3.9794 | >= 3.75 (design rate p + 1 = 4, tolerance 0.25) | pass |
| p = 1, curved: observed order (finest pair) | 1.87301 | >= 1.35 (empirical floor p + 0.35 for coarse warped meshes; guaranteed rate 1, design rate 2) | pass |
| p = 2, curved: observed order (finest pair) | 2.59713 | >= 2.35 (empirical floor p + 0.35 for coarse warped meshes; guaranteed rate 2, design rate 3) | pass |
| p = 3, curved: observed order (finest pair) | 3.82494 | >= 3.35 (empirical floor p + 0.35 for coarse warped meshes; guaranteed rate 3, design rate 4) | pass |

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T10:27:38-0500; device gpu · NVIDIA GeForce RTX 3060 Ti; quick suite. **Revision check: Same code as this build.** Produced by 39979fcf902ad6116eb550b881b4278d4599c8e2. Every commit between it and the commit this site was built from (ceb1f4b0bed41de53e586df10858079f5a2bcdd8) changes only documentation text, evidence records or bookkeeping: the code is the same. Full record: [mms_euler.json](../data/verification/mms_euler.json).

**Chart: Error of the conserved state** (Manufactured solution: Euler). Convergence chart of L2 error against h, x axis log, y axis log; 6 series. The table holds the plotted data. Reference slopes drawn: 2 (h^2), 3 (h^3), 4 (h^4). Observed order minus the design rate p + 1 on the finest mesh pair: Cartesian -0.09 to -0.02, curved -0.40 to -0.13. On the curved meshes the observed order increased with every refinement for every degree.

| h | p = 1, Cartesian | p = 2, Cartesian | p = 3, Cartesian | p = 1, curved | p = 2, curved | p = 3, curved |
|---|---|---|---|---|---|---|
| 0.25 | 0.0753256 | 0.00448636 | 1.8968e-04 | 0.0809866 | 0.00743004 | 0.00117036 |
| 0.125 | 0.0209751 | 5.8940e-04 | 1.2419e-05 | 0.0228986 | 0.00126828 | 9.6953e-05 |
| 0.0625 | 0.00557784 | 7.5265e-05 | 7.8738e-07 | 0.00625139 | 2.0961e-04 | 6.8413e-06 |

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T10:27:38-0500; device gpu · NVIDIA GeForce RTX 3060 Ti; quick suite. **Revision check: Same code as this build.** Produced by 39979fcf902ad6116eb550b881b4278d4599c8e2. Every commit between it and the commit this site was built from (ceb1f4b0bed41de53e586df10858079f5a2bcdd8) changes only documentation text, evidence records or bookkeeping: the code is the same. Full record: [mms_euler.json](../data/verification/mms_euler.json).

<!-- begin level 3 (Mechanics) -->
**[L3 Mechanics] Set-up**

A smooth trigonometric state with $\pm 10\,\%$ variations around a Mach 0.5 mean flow is made an
exact steady solution by a source term. The source is generated by forward-mode automatic
differentiation of the same flux kernels the solver uses (`gyre.mms.manufactured_source`), so no
hand-derived expression can be wrong. Dirichlet data enter through the interface Riemann flux.
The Newton iteration starts from the nodal values of the exact solution, whose residual is the
truncation error, and is converged to $10^{-11}$ of the residual of a uniform state;
convergence from a distant state is the subject of the
[solver-convergence study](solvers.md).

Cartesian meshes are checked against the design rate $p + 1$ (tolerance 0.25). On the curved
meshes (5 % warp, degree-4 geometry) the check is $p + 0.35$: an empirical regression floor
between the guaranteed rate $p$ and the design rate, not a bound from theory. The chart note
is generated from the run: the observed order minus the design rate, and whether the
curved-mesh order rose under refinement.

**Table: Errors and observed orders** (Manufactured solution: Euler)

| mesh | p | N | L2 error | order |
|---|---|---|---|---|
| Cartesian | 1 | 4 | 0.0753256 | — |
| Cartesian | 1 | 8 | 0.0209751 | 1.84446 |
| Cartesian | 1 | 16 | 0.00557784 | 1.9109 |
| Cartesian | 2 | 4 | 0.00448636 | — |
| Cartesian | 2 | 8 | 5.8940e-04 | 2.92824 |
| Cartesian | 2 | 16 | 7.5265e-05 | 2.96919 |
| Cartesian | 3 | 4 | 1.8968e-04 | — |
| Cartesian | 3 | 8 | 1.2419e-05 | 3.93293 |
| Cartesian | 3 | 16 | 7.8738e-07 | 3.9794 |
| curved | 1 | 4 | 0.0809866 | — |
| curved | 1 | 8 | 0.0228986 | 1.82242 |
| curved | 1 | 16 | 0.00625139 | 1.87301 |
| curved | 2 | 4 | 0.00743004 | — |
| curved | 2 | 8 | 0.00126828 | 2.55049 |
| curved | 2 | 16 | 2.0961e-04 | 2.59713 |
| curved | 3 | 4 | 0.00117036 | — |
| curved | 3 | 8 | 9.6953e-05 | 3.59353 |
| curved | 3 | 16 | 6.8413e-06 | 3.82494 |

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T10:27:38-0500; device gpu · NVIDIA GeForce RTX 3060 Ti; quick suite. **Revision check: Same code as this build.** Produced by 39979fcf902ad6116eb550b881b4278d4599c8e2. Every commit between it and the commit this site was built from (ceb1f4b0bed41de53e586df10858079f5a2bcdd8) changes only documentation text, evidence records or bookkeeping: the code is the same. Full record: [mms_euler.json](../data/verification/mms_euler.json).

<!-- end level 3 -->

## Manufactured solutions: Navier–Stokes

**Verification status: Manufactured solutions: Navier–Stokes** (study `mms_navier_stokes`): **PASSED**, 14 of 14 checks passed, 1225 s.

Viscous manufactured solutions with Dirichlet walls, solved implicitly with p-multigrid from the nodal values of the exact solution (the solve removes the truncation-error residual). 4 regimes are separated: heat conduction (quiescent); diffusion dominated, Re = 10; diffusion dominated, no mean flow, Re = 10; convection dominated, Re = 1000. Orders are reported per primitive variable. Every regime must reach the rate p that consistency guarantees; heat conduction and convection-dominated flow, where the coupling between pressure and velocity is absent or hyperbolic, are also checked against the design rate p + 1. In the diffusion-dominated regimes, where only the rate p is required of the state, the velocity is held to an empirical floor of p + 0.4 between the meshes 8 → 16; the floor was measured on that pair and is not a property of the scheme, so it is applied to the same pair at every level.

| Check | Value | Expected | Result |
|---|---|---|---|
| heat conduction (quiescent), p = 2: state order | 3.60088 | >= 1.75 (guaranteed rate p = 2, tolerance 0.25; design rate 3) | pass |
| heat conduction (quiescent), p = 2: near-optimal state order | 3.60088 | >= 2.60 (design rate p + 1 = 3, tolerance 0.4) | pass |
| heat conduction (quiescent), p = 3: state order | 3.99849 | >= 2.75 (guaranteed rate p = 3, tolerance 0.25; design rate 4) | pass |
| heat conduction (quiescent), p = 3: near-optimal state order | 3.99849 | >= 3.60 (design rate p + 1 = 4, tolerance 0.4) | pass |
| diffusion dominated, Re = 10, p = 2: state order | 2.33256 | >= 1.75 (guaranteed rate p = 2, tolerance 0.25; design rate 3) | pass |
| diffusion dominated, Re = 10, p = 2: velocity order between the meshes 8 → 16 | 2.72687 | >= 2.40 (empirical floor p + 0.4, measured on this mesh pair; guaranteed rate p = 2, design rate 3) | pass |
| diffusion dominated, Re = 10, p = 3: state order | 3.79396 | >= 2.75 (guaranteed rate p = 3, tolerance 0.25; design rate 4) | pass |
| diffusion dominated, Re = 10, p = 3: velocity order between the meshes 8 → 16 | 4.19354 | >= 3.40 (empirical floor p + 0.4, measured on this mesh pair; guaranteed rate p = 3, design rate 4) | pass |
| diffusion dominated, no mean flow, Re = 10, p = 2: state order | 1.99132 | >= 1.75 (guaranteed rate p = 2, tolerance 0.25; design rate 3) | pass |
| diffusion dominated, no mean flow, Re = 10, p = 2: velocity order between the meshes 8 → 16 | 2.57181 | >= 2.40 (empirical floor p + 0.4, measured on this mesh pair; guaranteed rate p = 2, design rate 3) | pass |
| convection dominated, Re = 1000, p = 2: state order | 2.852 | >= 1.75 (guaranteed rate p = 2, tolerance 0.25; design rate 3) | pass |
| convection dominated, Re = 1000, p = 2: near-optimal state order | 2.852 | >= 2.60 (design rate p + 1 = 3, tolerance 0.4) | pass |
| convection dominated, Re = 1000, p = 3: state order | 3.91862 | >= 2.75 (guaranteed rate p = 3, tolerance 0.25; design rate 4) | pass |
| convection dominated, Re = 1000, p = 3: near-optimal state order | 3.91862 | >= 3.60 (design rate p + 1 = 4, tolerance 0.4) | pass |

Run notes: State orders on the finest mesh pair. Within 0.4 of the design rate p + 1: heat conduction (quiescent) (p = 2: 3.60); heat conduction (quiescent) (p = 3: 4.00); diffusion dominated, Re = 10 (p = 3: 3.79); convection dominated, Re = 1000 (p = 2: 2.85); convection dominated, Re = 1000 (p = 3: 3.92). Further below it: diffusion dominated, Re = 10 (p = 2: 2.33, slowest variable pressure at 2.34); diffusion dominated, no mean flow, Re = 10 (p = 2: 1.99, slowest variable pressure at 1.99). Only the guaranteed rate p is required of the state in the regimes that are not checked against the design rate; in the diffusion-dominated ones the velocity must also reach p + 0.4 between the meshes 8 → 16, the pair on which that empirical floor was measured (the finest pair of this run), and on the finest pair its order minus that of pressure was +0.39 to +0.58 in this run. The per-variable orders are in the table. Symmetry of the viscous operator and the order of the diffusion discretization on its own are the subject of the viscous-operator and 1-D model studies.

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T10:48:07-0500; device gpu · NVIDIA GeForce RTX 3060 Ti; quick suite. **Revision check: Same code as this build.** Produced by 39979fcf902ad6116eb550b881b4278d4599c8e2. Every commit between it and the commit this site was built from (ceb1f4b0bed41de53e586df10858079f5a2bcdd8) changes only documentation text, evidence records or bookkeeping: the code is the same. Full record: [mms_navier_stokes.json](../data/verification/mms_navier_stokes.json).

**Chart: Error of the conserved state by regime** (Manufactured solutions: Navier–Stokes). Convergence chart of L2 error against h, x axis log, y axis log; 7 series. The table holds the plotted data. Reference slopes drawn: 3 (h^3), 4 (h^4).

| h | heat conduction (quiescent), p = 2 | heat conduction (quiescent), p = 3 | diffusion dominated, Re = 10, p = 2 | diffusion dominated, Re = 10, p = 3 | diffusion dominated, no mean flow, Re = 10, p = 2 | convection dominated, Re = 1000, p = 2 | convection dominated, Re = 1000, p = 3 |
|---|---|---|---|---|---|---|---|
| 0.25 | 0.00367857 | 2.3907e-04 | 0.011288 | 5.1011e-04 | 0.0201554 | 0.00453743 | 1.9839e-04 |
| 0.125 | 3.7490e-04 | 1.5520e-05 | 0.00248839 | 3.8539e-05 | 0.00539532 | 6.2237e-04 | 1.3382e-05 |
| 0.0625 | 3.0899e-05 | 9.7099e-07 | 4.9402e-04 | 2.7784e-06 | 0.00135697 | 8.6201e-05 | 8.8491e-07 |

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T10:48:07-0500; device gpu · NVIDIA GeForce RTX 3060 Ti; quick suite. **Revision check: Same code as this build.** Produced by 39979fcf902ad6116eb550b881b4278d4599c8e2. Every commit between it and the commit this site was built from (ceb1f4b0bed41de53e586df10858079f5a2bcdd8) changes only documentation text, evidence records or bookkeeping: the code is the same. Full record: [mms_navier_stokes.json](../data/verification/mms_navier_stokes.json).

**Table: Observed orders on the finest mesh pair** (Manufactured solutions: Navier–Stokes)

| regime | p | L2 error (finest) | state | velocity | pressure | temperature |
|---|---|---|---|---|---|---|
| heat conduction (quiescent) | 2 | 3.0899e-05 | 3.60088 | 3.6433 | 3.60046 | 3.05238 |
| heat conduction (quiescent) | 3 | 9.7099e-07 | 3.99849 | 4.94591 | 3.99795 | 4.58993 |
| diffusion dominated, Re = 10 | 2 | 4.9402e-04 | 2.33256 | 2.72687 | 2.33663 | 3.1517 |
| diffusion dominated, Re = 10 | 3 | 2.7784e-06 | 3.79396 | 4.19354 | 3.79776 | 4.61291 |
| diffusion dominated, no mean flow, Re = 10 | 2 | 0.00135697 | 1.99132 | 2.57181 | 1.99047 | 2.70647 |
| convection dominated, Re = 1000 | 2 | 8.6201e-05 | 2.852 | 2.99477 | 2.84167 | 2.95746 |
| convection dominated, Re = 1000 | 3 | 8.8491e-07 | 3.91862 | 3.98075 | 3.90575 | 4.11096 |

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T10:48:07-0500; device gpu · NVIDIA GeForce RTX 3060 Ti; quick suite. **Revision check: Same code as this build.** Produced by 39979fcf902ad6116eb550b881b4278d4599c8e2. Every commit between it and the commit this site was built from (ceb1f4b0bed41de53e586df10858079f5a2bcdd8) changes only documentation text, evidence records or bookkeeping: the code is the same. Full record: [mms_navier_stokes.json](../data/verification/mms_navier_stokes.json).

<!-- begin level 2 (Practice) -->
**[L2 Practice] Regimes are checked differently**

Every regime must reach the rate $p$ that consistency guarantees (tolerance 0.25). Beyond that:

* **Heat conduction in a quiescent gas** — the diffusion operator alone — and
  **convection-dominated flow** ($Re = 1000$ on the unit box) are also checked against the
  design rate $p+1$ (tolerance 0.4). There the coupling between pressure and velocity is
  absent or hyperbolic.
* **Diffusion-dominated flow** ($Re = 10$), with and without a mean flow: only the rate $p$ is
  required of the state. The velocity is additionally held to an empirical floor of $p + 0.4$
  between the meshes 8 → 16. That floor was measured on that mesh pair and is not a property
  of the scheme.

The table reports the observed order per primitive variable, and the run notes under the
status state, from the numbers of the run, which regimes came within 0.4 of the design rate
and which variable was slowest where they did not.

<!-- end level 2 -->

<!-- begin level 4 (Theory) -->
**[L4 Theory] Why pressure may lag when diffusion dominates (a hypothesis)**

The explanation in this block is a conjecture that fits the measurements; no study in the
repository isolates the mechanism. When viscous terms dominate the momentum balance, the system behaves like the compressible
analogue of the Stokes problem: velocity is determined by an elliptic equation, and pressure
(with density and total energy, which contain it) plays the role of the multiplier that
enforces the continuity constraint. For equal-order velocity–pressure discretizations of such
saddle-point problems the classical estimate bounds the $L^2$ error of pressure by the $H^1$
error of velocity — order $p$, one below the velocity's $L^2$ rate. That bound is a guarantee,
not a prediction; the observed pressure orders are in the table. When convection dominates,
pressure and velocity are instead coupled hyperbolically, and the design rate $p+1$ is
checked.

Two pieces of evidence show that the diffusion operator *on its own* is not the cause; they
do not exercise the coupled system and so do not confirm the Stokes-like mechanism:

1. the discrete heat-conduction and viscous-stress operators are symmetric to round-off
   ([discrete invariants](discrete-invariants.md));
2. an independent one-dimensional implementation of the same BR2/Gauss–Lobatto formulation,
   including the nonlinear work term $u\,\tau$ of the energy equation, converges at $p+1$ for
   every degree on uniform and non-uniform grids:

**Table: Observed orders on the finest pair (η = 2)** (Independent 1-D model of the BR2 formulation)

| grid | p | L2 error u | order u | L2 error T | order T |
|---|---|---|---|---|---|
| uniform | 1 | 6.8751e-05 | 1.98631 | 3.6884e-05 | 1.93671 |
| uniform | 2 | 3.4142e-07 | 3.01796 | 1.0618e-07 | 3.09137 |
| uniform | 3 | 3.5915e-09 | 3.99268 | 5.6670e-10 | 4.20343 |
| uniform | 4 | 6.0971e-12 | 5.00374 | 1.3510e-12 | 5.46181 |
| non-uniform | 1 | 7.8943e-05 | 2.26723 | 4.1248e-05 | 2.173 |
| non-uniform | 2 | 4.2637e-07 | 3.5915 | 1.3261e-07 | 3.75993 |
| non-uniform | 3 | 4.6638e-09 | 4.55556 | 7.3161e-10 | 4.89335 |
| non-uniform | 4 | 9.7043e-12 | 5.98881 | 2.1334e-12 | 6.64666 |

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T10:22:38-0500; device cpu; quick suite. **Revision check: Same code as this build.** Produced by 39979fcf902ad6116eb550b881b4278d4599c8e2. Every commit between it and the commit this site was built from (ceb1f4b0bed41de53e586df10858079f5a2bcdd8) changes only documentation text, evidence records or bookkeeping: the code is the same. Full record: [diffusion_1d.json](../data/verification/diffusion_1d.json).

Against the hypothesis: the manufactured solution runs at Mach 0.5, where pressure is a
thermodynamic variable and not a constraint multiplier, and three other candidates in this
discretization have not been excluded — Gauss–Lobatto under-integration of the BR2 form, the
penalty $\eta = 2d$ sitting exactly on the coercivity bound, and the non-conservative gradient
in $(\mathbf u, T)$. The discriminating studies (rate against Mach number, Gauss against
Gauss–Lobatto quadrature, a sweep of $\eta$) have not been run; see
[viscous terms](../theory/viscous-br2.md).

Practical consequence, which rests on the measured rates and not on the explanation: in boundary layers and wakes resolved at cell Reynolds numbers of order
one, plan resolution for pressure-derived quantities with a rate nearer $p$ than $p+1$.

<!-- end level 4 -->
