FROZEN BEFORE GPU — bounded fine-surface/interface validation, 2026-10-14 Scope: exactly three independent trajectories speed=0,+.002,-.002, each24 coarse/48fine steps, same physical time[0,24]. No other GPU tests, extensions, parameter sweeps or time extensions. Read-only hook instrumentation of normal production build, no audit macro and no stepping/formula changes. Geometry: periodic24x24 coarse domain; patch edge bounds[4,20)x[4,20); fine40x40 including4halo; origin edge(2,2); fine dx=dt=.5; coarse dx=dt=1. Circle physical center(12.25,12.25),radius2.15 => fine integer center(20,20),R4.3. Stationary solid; surface angle.7rad,half_width.85rad,C1 amplitude0,+/-.002. nu_coarse=.05,tau_coarse=.65,tau_fine=.8; unforcedD2Q9SRT,FP32,unshiftedDB. Initial rho1,u0,Q-major postcollision equilibrium, same FP32 initial populations. All initial sources and device omega are checked. Actual package path must be /home/frank14f/CelerisLab/src. The preserved old tests are not changed or run. Validity at every fine/coarse hop and publication: All valid fluid leaves finite, density(.9,1.1) and |u|<.05 in local collision oracle validity regime. Fine solids and outermost2halo after each fine hopNaN; inner ghost exactly stream-only including legitimate directionalNaNs. Published fine ghost/solid and coarse coveredNaN. Geometry and flags unchanged. Propagation definitions (strict >; horizons and masks never adjusted): - Fine band: fine active fluid nodes with any D2Q9 nonrest neighbor outside geometric active patch, excluding solid boundaries. - Coarse interface: uncovered receiver cells of actual coalescence map. - Coarse bulk: ALL uncovered coarse fluid except that interface receiver set. - Transfer neq: actual replaced q component of the full reconstructed coarse incoming vector minus FP64feq(rho,u) of that same incoming vector, BEFORE coarse collision. Do not form full macros from partly valid ghost children. - Fine band neq: postcollision g minus FP64 equilibrium from its own macros. - Velocities: FP64 moments of published postcollision g / rho. - Physical coordinate coarse(I+.5,J+.5);fine(2+.5*(i+.5),2+.5*(j+.5)). Interface transfer and publication sampled at integer physical t=1..24. Boundary substeps at t=n-.5,n; no claim of sub-integer arrival resolution. - At each same point/q,time,phase compare driven and ZERO trajectory: velocity norm difference>1e-6 AND >10*zero velocity norm; neq absolute difference>1e-7 AND >10*abs(zero neq). Fine-band criterion uses maxq at each node for BOTH signal/baseline; this conservatively requires excess over the largest zero neq at that node. - For BOTH signs, all4 metrics (fine-band neq, actual-transfer neq, coarse-interface velocity, coarse-bulk velocity) must cross by24 or FAIL. Record each first qualified sample and global peak's time,physicallocation, baseline,absolutevalue,signal; per-step maxima and qualifying flag retained. These are aligned signal witnesses, not necessarily the same node/direction. This tests startup distribution/macroscopic propagation, possibly acoustic; not established jet advection, physical accuracy or shear-only transmission. Ledger (M maps9populations to mass,px,py; area weights coarse1,fine1/4): L_n=M(sum coarse leaves+1/4 sum fine fluid leaves), FP64 accumulation. Each of48fine hops individually captures pre-BFL and staged BFL populations. B_h=1/4 M(actual solid-to-fluid arrivals minus fluid-to-solid departures). F_h=1/4 M(actual ghost-to-fluid arrivals minus fluid-to-ghost departures). B_n=B_h1+B_h2; F_n=F_h1+F_h2. No using latest buffer as two-hop sum. C_n=M(actual reconstructed coarse incoming minus previous coarse leaves), including periodic native streaming, all replacement links and8grazingcorners. Coarse incoming constructed from independent physical midpoint map; compare all target/source slots to actual tables. avg32=.25*((a+b)+c+d) inFP32. RAW_n=L_n-L_(n-1)-B_n-F_n-C_n; cumulative raw uses same initial/final leaves. Report RAW and driven-minus-zero RAW FIRST, never call them corrected to zero. Source-based rounding decomposition and separate fixed checks: 1. Each fine/coarse collision: reconstruct actual FP32 input using pure pull and avg32 where applicable. Independently evaluate FP64 SRT at the actual device FP32omega, verifying omega against tau and force=0. Every q,node must obey |GPUout-SRT64(input)| <= 8*eps32*|input_q|. This fixed local, near-rest acceptance bound reflects short FP32 rho/macro/ feq/FMA path and fast-math compilation; it is not a general roundoff theorem. Report max absolute error and max normalized ratio, and fail if ratio>1. Cround = weighted sum M(GPUout-input) measured LOCALLY, independently of L or RAW. Record FP64 ideal moment defect and measured GPUout-ideal separately. Arbitrary collision error cannot be excused solely by global closure. 2. Transfer Tround=M(avg32-avg64exact), computed independently from actual4 children. Require each slot <=gamma3*sum|children|/4, u=eps32/2, gamma3=3u/(1-3u); exact power-of-two scaling in this normal positive regime. avg32 already in C_n, so DO NOT subtract Tround a second time. Also report RAW_exact_average=RAW+Tround to expose this source explicitly. 3. BFL local oracle abs error<=1e-7, actual active cells unchanged. 4. |RAW_n-Cround_n|<=1e-10 componentwise per interval; |sum RAW-sum Cround|<=1e-9 cumulative. These are FP64 bookkeeping bounds, NOT a physical-conservation/accuracy test. No broad eps*whole-domain accumulated budget used to label raw conservation as passing. 5. Both driven cases' cumulative actual-minus-passive-oracle boundary mass has same sign as specified normal speed. BFL passive evaluated on same actual populations; not another trajectory and not a conservation fix. Saved data: pertrajectory24ledger rows,72local collision rows,48fine boundary rows; small compressed diagnostic signals for reproducible zero comparisons; no full-field populations. Per-step link_exchange_GPU also saved separately: latest fine Fx,Fy scaled1/4; torque scaled1/8 for physical lever length. These body momentum diagnostics differ from fluid mass exchange and are NOT thrust or exchange rate. A fine-hop fluid exchange rate is B_h/.5; the coarse interval rate is (B_h1+B_h2)/1, numerically equal to interval sum only because dt_c=1. Do not equate B_h2/latest with two-hop interval sum. No post-result tolerance/formula/window changes, retries or added steps to chase PASS. Preserve errors with real stdout/exit. Report precise unmet checks. Resource guards: fresh physicalGPU0UUID/apps/VRAM/RAM, onlyGPU0ifidle; no other task interference; 180secondwalltimeout; current available RAM reserve max(4GiB,10%),VRAM reserve max(512MiB,10%), own temporary+evidence<=2GB. Sample own process group RSS, no fixed address-space/RSS cap; remove only owned scratch. Every text artifact<=40000characters. Hash criteria/script/source at freeze then verify before launch; preserve all previous dirty/evidence. Reference trace: accepted local tests/test_fine_surface_gpu.py BFL/flux hooks; refinement.cu actual two fine hops and coalesce order; macro.cuh and collision_srt.cuh actual FP32 collision path; compiler_v2.py --use_fast_math. Previously accepted OpenLB defineU2D.hh74-79/offBoundaryPostProcessors2D.hh115-127 remain BFL hit/stencil reference; no new CFD formula or borrowed code. Production change limited to one coordinate-frame documentation sentence.