Gyredocs
Depth Practice
API

Gyre/Verification

Output error estimation

In one minuteThe adjoint-weighted-residual estimate predicts the change of an output between polynomial degree p and p + 1 from a single linear solve. Its effectivity is measured against the actually converged p + 1 solution.

Written at L2 Practice goes to L4 Theory 780 words Markdown
PassedOutput error estimation5 of 5 checks passed · 367.7 s · quick suite

Inviscid subsonic flow over a smooth Gaussian bump. The exact flow is isentropic, so the entropy error measures solution accuracy directly. For the drag coefficient the adjoint-weighted residual predicts the change of the output between degree p and p + 1 from a single linear solve; effectivity compares that prediction with the actually converged p + 1 solution.

  • p = 1: effectivity on finest mesh0.933expected 0.7 … 1.3pass
  • p = 1: error remaining after correction (finest mesh)0.04869expected < 0.25pass
  • p = 2: effectivity on finest mesh0.9667expected 0.7 … 1.3pass
  • p = 2: error remaining after correction (finest mesh)0.02162expected < 0.25pass
  • p = 2: entropy-error order3.803expected >= 2.5 (design rate p + 1 = 3, tolerance 0.5)pass

Run notes With p = 1 the wall is piecewise linear, and the entropy-error order is reported, not required: it was 0.09 on these meshes, against a design rate of 2. Spurious entropy generated at the kinks of a polygonal wall need not decay at the design rate, the classical argument for curved elements. The effectivity checks do apply at p = 1: the p = 2 space that the estimate targets has a curved wall.

gyre 0.4.0 · 39979fcf90 · · cpu · quick suite · record (JSON)Same code as this build

The test case is inviscid subsonic flow over a smooth Gaussian bump in a channel. The exact flow is isentropic, so the entropy error is a direct measure of solution accuracy:

Entropy errorOutput error estimation
Data table
h (1 / nx)p = 1p = 2
0.08333330.001996090.0011528
0.04166670.001880388.2571e-05

gyre 0.4.0 · 39979fcf90 · · cpu · quick suite · record (JSON)Same code as this build

Elements are isoparametric: the geometry is interpolated at the solution degree. At p=1p = 1 the wall is therefore a polygon, and each kink generates spurious entropy that need not decay at the design rate — the classical observation that motivated curved elements (Bassi and Rebay, 1997). The entropy-order check applies to p≥2p \ge 2; at p=1p = 1 the order is reported, not required, and the run notes under the status state the order that was measured. The effectivity checks do apply at p=1p = 1: the p=2p = 2 space that the estimate targets has a curved wall. On curved walls, use p≥2p \ge 2.

Effectivity#

Adjoint-weighted-residual estimate versus the p + 1 solutionOutput error estimation
meshpcd (p)estimate δcorrectedcd (p + 1, converged)effectivityremaining / original error
12x410.0177275-0.008570080.006342030.005694780.9297790.0537907
24x810.012233-0.008066569.2333e-043.4443e-040.933040.0486938
12x420.00569478-0.00263445.0612e-041.4077e-040.8782070.065781
24x823.4443e-04-2.0704e-042.1391e-051.4254e-050.9666760.0216164

gyre 0.4.0 · 39979fcf90 · · cpu · quick suite · record (JSON)Same code as this build

For each mesh and degree pp: the output computed at degree pp; the adjoint estimate δ\delta of the change to degree p+1p+1; the corrected output; and the output of an actual, fully converged p+1p+1 computation. Effectivity is the ratio of the predicted to the actual change — one is perfect. The last column is the error that remains after correction relative to the error before.

Drag error: raw and adjoint-correctedOutput error estimation

Reference: finest mesh at degree 4, a solution used by no plotted point and no estimate. It differs from the degree-3 output on the same mesh by 1.4e-05; the reference is itself a computed value, and differences of that size or below are not resolved. Corrected outputs are the injected p + 1 output plus the adjoint estimate.

Data table
h (1 / nx)p = 1: cdp = 2: cdp = 1: correctedp = 2: corrected
0.08333330.01772710.005694430.006341685.0577e-04
0.04166670.01223273.4408e-049.2298e-042.1043e-05

gyre 0.4.0 · 39979fcf90 · · cpu · quick suite · record (JSON)Same code as this build

The chart plots the distance of the raw and of the corrected drag from a reference. The correction is designed to remove the leading error term; how far it does is measured by the last column of the effectivity table and its check (error remaining after correction below a quarter of the original on the finest mesh). The reference is the finest mesh at a degree two above the highest plotted one, a solution used by no plotted point and no estimate. It is itself a computed value: the chart note states its distance from the solution one degree lower, and differences of that size or below are not resolved. If that reference solve does not converge, the chart falls back to the solution one degree lower and omits the one corrected point that would be measured against its own target; the note says so.

The estimate is first order in the difference between the injected and the converged fine-space solutions, so its relative accuracy improves as the mesh is refined (asymptotic exactness) and degrades on meshes too coarse for the linearisation to hold. It measures the error relative to the p+1p+1 space, not to the exact solution; where the solution is singular (a sharp trailing edge) enrichment in pp alone captures less of the true error.

    ↑ ↓ moveEnter open[ ] change depthResults show section and depth level