R7-2a: the composite MAC projection on the nested ratio-2 patch (host, additive, uncalled)

embedded3::composite::MacProjection: staggered velocity on the coarse grid
and the patch; fine faces own the coarse-fine interface, coarse interface
and covered faces are slaved (flux = sum of the fine fluxes); the divergence
with the fine cut apertures (+ optional wall flux), the gradient with the
Dirichlet boundary and, on the interface, the fine row's own Quadratic-ghost
terms, so D G p = b - A p exactly. Composite records the interface faces'
terms and the fine cut (matrix unchanged: the phase-1 P1 CSV reproduces
digit for digit); solve_bicgstab_with takes a prepared preconditioner.

Gates (tests/embedded3_composite_projection.rs): P1 DG identity 4e-16,
div after/before <= 7e-14 in every cell class, idempotent 3e-13; P2 MMS
orders 1.96-2.02 (L2 and Linf) at the fine/coarse interface faces and the
interior; P3 cut sphere div 3e-12, translating body unchanged 4e-14,
interface L2 orders 1.96/2.01, cut faces first order as on the uniformly
fine grid (composite = uniform fine to 1.6 % of the error); P4 3.7x less
time, 4.3x fewer unknowns than uniform fine at the bump's accuracy.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
Omar Sobh
2026-09-25 21:57:45 -05:00
co-authored by Claude Opus 5.5
parent 171da41ed1
commit cc68336f48
5 changed files with 1560 additions and 9 deletions
File diff suppressed because it is too large Load Diff