Rule × grid matrix

Auto-generated coverage matrix: which rules dispatch on which grid families, and the convergence-order observed by each Layer-B fixture.

The matrix below is regenerated from discretizations/ and the fixture trees under tests/conformance/ by tools/render_rule_matrix.py. Drop a new rule or a new grid into the catalog and CI updates this view — no hardcoded cells. Use the matrix to answer two questions:

  1. (user) “Does rule X work on grid Y?” — applicable cells are coloured; the number is the floor on observed convergence order baked into the rule’s Layer-B fixture (expected_min_order in discretizations/<family>/<rule>/fixtures/convergence/expected.esm).
  2. (contributor) “Where are the holes?” — missing cells flag rule × grid pairs the rule declares it serves but where the canonical or convergence fixture has not landed yet.

Cells legend:

  • order (green) — applicable, convergence fixture is running, value is the fixture’s expected_min_order floor.
  • canonical (blue) — applicable, cross-binding canonical fixture exists but no convergence fixture yet.
  • missing (amber) — applicable, no fixture yet (or fixture is structurally skipped pending an ESS harness extension). Visible dispatch hole.
  • n/a (muted) — rule does not declare this grid family in its applies_to block.
Rules: 60 Applicable cells: 60 Convergence: 31 Canonical only: 0 Missing: 29 Generated 2026-06-26T10:26:02Z
rulefamilyopcartesianlatlonverticalmpasarakawaduo
centered_2nd_deriv_nonuniform_verticalfinite_differenced2n/an/amissingn/an/an/a
centered_2nd_deriv_uniformfinite_differenced21.9n/an/an/an/an/a
centered_2nd_deriv_uniform_verticalfinite_differenced2n/an/amissingn/an/an/a
centered_2nd_nonuniform_cartesianfinite_differenced21.9n/an/an/an/an/a
centered_2nd_nonuniform_verticalfinite_differencegradn/an/a1.9n/an/an/a
centered_2nd_uniformfinite_differencegrad1.9n/an/an/an/an/a
centered_2nd_uniform_latlonfinite_differencegradn/a1.9n/an/an/an/a
centered_2nd_uniform_verticalfinite_differencegradn/an/a1.9n/an/an/a
centered_4th_deriv_uniformfinite_differenced23.9n/an/an/an/an/a
centered_4th_uniformfinite_differencegrad3.9n/an/an/an/an/a
centered_4th_uniform_latlonfinite_differencegradn/amissingn/an/an/an/a
centered_4th_uniform_verticalfinite_differencegradn/an/amissingn/an/an/a
centered_6th_deriv_uniformfinite_differenced25.5n/an/an/an/an/a
centered_6th_uniformfinite_differencegrad5.5n/an/an/an/an/a
centered_6th_uniform_latlonfinite_differencegradn/amissingn/an/an/an/a
centered_6th_uniform_verticalfinite_differencegradn/an/amissingn/an/an/a
centered_8th_deriv_uniformfinite_differenced27n/an/an/an/an/a
centered_8th_uniformfinite_differencegrad7n/an/an/an/an/a
centered_8th_uniform_latlonfinite_differencegradn/amissingn/an/an/an/a
centered_8th_uniform_verticalfinite_differencegradn/an/amissingn/an/an/a
godunov_norm_1st_uniform_cartesian_2dfinite_differencesqrtmissingn/an/an/an/an/a
laplacian_2nd_uniform_cartesianfinite_differencelaplacian1.9n/an/an/an/an/a
mixed_deriv_2nd_nonuniformfinite_differencegrad1.9n/an/an/an/an/a
mixed_deriv_2nd_uniformfinite_differencegrad1.9n/an/an/an/an/a
nn_diffusion_duofinite_differencelaplaciann/an/an/an/an/a0.8
nn_diffusion_mpasfinite_differencelaplaciann/an/an/a1n/an/a
nonlinear_laplacian_nonuniformfinite_differencegrad1.9n/an/an/an/an/a
nonlinear_laplacian_uniformfinite_differencegrad1.9n/an/an/an/an/a
spherical_laplacian_nonuniformfinite_differencespherical_laplacian1.9n/an/an/an/an/a
spherical_laplacian_uniformfinite_differencespherical_laplacian1.9n/an/an/an/an/a
staggered_1st_uniform_cc_to_facefinite_differencegradn/an/an/an/amissingn/a
staggered_1st_uniform_face_to_ccfinite_differencegradn/an/an/an/amissingn/a
upwind_1stfinite_differencegrad0.9n/an/an/an/an/a
upwind_1st_latlonfinite_differencegradn/amissingn/an/an/an/a
upwind_1st_nonuniformfinite_differencegrad0.9n/an/an/an/an/a
upwind_1st_verticalfinite_differencegradn/an/amissingn/an/an/a
weno5_gradfinite_differencegradmissingn/an/an/an/an/a
advection_duofinite_volumedivn/an/an/an/an/amissing
advection_mpasfinite_volumedivn/an/an/amissingn/an/a
advection_mpas_velocity_firstfinite_volumedivn/an/an/amissingn/an/a
covariant_fv_gradient_latlon_t1finite_volumegradn/amissingn/an/an/an/a
covariant_fv_gradient_latlon_t2finite_volumegradn/amissingn/an/an/an/a
covariant_fv_laplacian_latlonfinite_volumelaplaciann/amissingn/an/an/an/a
divergence_arakawa_cfinite_volumedivn/an/an/an/a1.9n/a
divergence_duofinite_volumedivn/an/an/an/an/a0.9
divergence_mpasfinite_volumedivn/an/an/a0.9n/an/a
flux_1d_ppmfinite_volumefluxmissingn/an/an/an/an/a
flux_duofinite_volumefluxn/an/an/amissingn/an/a
flux_limiter_minmodfinite_volumelimitmissingn/an/an/an/an/a
flux_limiter_superbeefinite_volumelimitmissingn/an/an/an/an/a
gradient_duofinite_volumegradn/an/an/an/an/a0.9
gradient_mpasfinite_volumegradn/an/an/a1.7n/an/a
lax_friedrichs_fluxfinite_volumefluxmissingn/an/an/an/an/a
ppm_reconstructionfinite_volumereconstruct2.8n/an/an/an/an/a
ppm_reconstruction_left_edgefinite_volumeq_left_edgemissingn/an/an/an/an/a
ppm_reconstruction_right_edgefinite_volumeq_right_edgemissingn/an/an/an/an/a
vertical_remapfinite_volumevertical_remapn/an/amissingn/an/an/a
weno5_advectionfinite_volumediv4.7n/an/an/an/an/a
weno5_advection_2dfinite_volumeadvect4.5n/an/an/an/an/a
midpoint_1dintegralintegralmissingn/an/an/an/an/a