From the PR #404 round-2 review (2026-07-24). The consistent P2 trace-mass recovery is exact on FLAT boundaries (pointwise 1e-11), but on CURVED boundaries the vertex values are unusable at practical resolutions: the P2 vertex basis has zero surface mean, so vertex reactions carry only the O(h) facet-normal/geometry error, and the consistent solve faithfully reconstructs that error. Measured (spherical-shell conduction, exact flux): vertices 93%→55% error under refinement cs=0.25→0.125 (moving SLOWLY), midpoints 2.8%→0.7% (superconvergent). The Zhong vertex-only harmonic fit drifts AWAY from the reference with refinement (0.395→0.371 vs 0.419) while the midpoint fit converges onto it.
Actions: (1) docstring caveat on boundary_normal_traction / dynamic_topography / boundary_flux — on curved boundaries, pointwise consumers should use midpoint values or integral/fitted quantities, not vertices; (2) consider having dynamic_topography on curved boundaries return a midpoint-weighted or fitted field; (3) the test_1018/test_1064 vertex goldens encode the bias (rtol 0.10-0.12 absorbs it) — annotate so nobody tightens them against the wrong reference.
Underworld development team with AI support from Claude Code
From the PR #404 round-2 review (2026-07-24). The consistent P2 trace-mass recovery is exact on FLAT boundaries (pointwise 1e-11), but on CURVED boundaries the vertex values are unusable at practical resolutions: the P2 vertex basis has zero surface mean, so vertex reactions carry only the O(h) facet-normal/geometry error, and the consistent solve faithfully reconstructs that error. Measured (spherical-shell conduction, exact flux): vertices 93%→55% error under refinement cs=0.25→0.125 (moving SLOWLY), midpoints 2.8%→0.7% (superconvergent). The Zhong vertex-only harmonic fit drifts AWAY from the reference with refinement (0.395→0.371 vs 0.419) while the midpoint fit converges onto it.
Actions: (1) docstring caveat on boundary_normal_traction / dynamic_topography / boundary_flux — on curved boundaries, pointwise consumers should use midpoint values or integral/fitted quantities, not vertices; (2) consider having dynamic_topography on curved boundaries return a midpoint-weighted or fitted field; (3) the test_1018/test_1064 vertex goldens encode the bias (rtol 0.10-0.12 absorbs it) — annotate so nobody tightens them against the wrong reference.
Underworld development team with AI support from Claude Code