Skip to content

0.2.7 Mesh Quality Contract

WP06 installs a common diagnostic contract for the existing TET4, TET10, HEX8 and HEX20 families. It is implemented by solveur.mesh.quality_contract and does not replace the element kernels, their integration rules, or the legacy validator.

Contract boundary

The contract returns one deterministic ElementQualityAssessment per element and an aggregated MeshQualityAssessment for a model. The classification is:

  • VALID: finite, positively oriented geometry with consistent sampled Jacobians and no inherited diagnostic warning;
  • VALID_WITH_WARNING: calculation remains permitted, with a warning retained for a family-specific legacy diagnostic;
  • INVALID: non-finite, degenerate, non-positive or sign-inconsistent geometry that must fail closed before assembly when the preflight path is available.

Each result retains the element ID and family, signed and absolute volume, sampled Jacobian extrema and ratio, sign consistency, orientation, degeneracy, edge aspect indicator, distortion indicator, warnings, fatal findings and metric provenance. A matrix condition number is not inferred: the geometric_conditioning_indicator is explicitly null unless a justified estimator is added in a later contract revision.

Threshold policy

No universal aspect-ratio or conditioning cutoff is introduced. TET4/TET10 warnings may report existing values from solveur.mesh.quality.MeshQualityThresholds; those values are identified as legacy diagnostics and are not qualification policies. Absolute legacy volume cutoffs are not used for the common classification, so dimensionless quality classification remains invariant under a change of coordinate scale. Existing solver validation behavior is unchanged.

Preflight behavior

preflight_model now evaluates the common contract before dispatch completes. An invalid geometry adds a structured UNSUPPORTED_ROUTE result with reason MESH_GEOMETRY_INVALID and the fatal findings. VALID_WITH_WARNING is diagnostic-only and does not block calculation. Unknown element capability remains governed by the WP03 descriptor/preflight contract.

Controlled cases

The declarative cases in qualification/0_2_7/vnv_v2/mesh_quality_cases.json cover nominal TET4 and HEX8 geometry, a legacy-warning TET4, and an inverted TET4 expected failure. The unit corpus additionally covers TET10 and HEX20, duplicate nodes, rigid translations/rotations, dimensionless scale changes, deterministic serialization and model preflight.

WEDGE6 readiness

The quality contract now evaluates the implemented six-node prism with two TRI3 and three QUAD4 faces. T1-R3 fixes its certificate: at fixed triangular coordinates det(J) is quadratic in t, so each of the three triangular vertices is checked at both endpoints and every interior stationary point. Volume quadrature points, face-centroid and interior-centroid checks remain diagnostics only. The scale-aware machine-epsilon guard is not a qualification cutoff. It requires prism-oriented signed volume, six-node orientation, face-normal orientation, degeneracy and prism-compatible distortion metrics. WEDGE6_IMPLEMENTED is YES for the WP07 technical kernel. The registry still records the route as EXPERIMENTAL; WP06/WP07 do not create a public qualified claim.