- e3_mask.cu: the changed set (touched by either build, dilated), the faces of
the changed cells, per changed cell the fluid flag / space-time activity /
GCL entry and the merging master, per face the kind, the step aperture and
open flag and the open-part centroid shift (compute_face_shifts' cv
geometry), the GCL table's wall cells / areas / table with the correction,
the merged cells' CSR (slave ranks from the master's distinct face
neighbours), the imposition band's faces; block scans for ascending stream
compaction and the CSR's exclusive scan. fp64, FMA contraction off.
- step/device/mask.rs DeviceMask: snapshots the previous apertures / volumes /
evaluated cells before the R6-1 geometry kernels, runs the classification
into DeviceCut's persistent tables (a, open, open_pred, active,
active_pred, owner, shift, wall_flux, fold_ptr/fold_idx) and returns the
compact values (MaskUpdate); the GCL sums in ascending order on the host.
DeviceCut::update_after_device_mask: only the band's surface velocities
remain (band list compacted on the device).
- maskupdate.rs: Mask::from_update — the host mirror from the old mask's step
arrays and merging map (moved) and the mask retired a step earlier
(instantaneous arrays, pooled), the compact values scattered; incremental
fluid count / anchor / side check; the fresh-cell refill over the changed set.
- RTX_E3_BAND_CHECK=1 with the knob: the host rebuild on copies (from_cut,
face shifts, step apertures, merging, GCL, refill) against the mirror, bit
for bit, and every device table against a full build.
- Knob off: the host path unchanged (Mask::from_parts, Solver::configure_mask
and retire_mask are the same statements); profile laps under
RTX_E3_MOVING_PROFILE only.
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>