embedded3 R6-2 step 2: the band's surface velocity at the foot (ub) and the rebuild's imposition on the device (RTX_E3_UB_DEVICE=1, default off)

e3_geom_ub / e3_geom_impose / e3_geom_seam: the flag body's surface velocity
(DeviceSdf::vel, the centreline's velocity per point) at the foot from the
trilinear interpolant of the device corner phi, and at the face centre for the
band's solid faces of the uploaded field (a cut mask has no ghosts); the host
mirror of ub by a packed download. RTX_E3_BAND_CHECK=1 compares the device ub
with Mask::surface_velocity_at and the imposed u, v, w with impose_from, bit for
bit; check_against now compares ub on every band face (zeros included).

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
Omar Sobh
2026-09-25 01:30:29 -05:00
co-authored by Claude Opus 5.5
parent 6ae5312b6f
commit 2c054ccc91
8 changed files with 583 additions and 94 deletions
@@ -415,6 +415,14 @@ fn flag_wake_on_the_device() {
.collect(),
None => analytic_polyline(t).iter().map(|p| [p.0, p.1]).collect(),
},
// R6-2 step 2: the centreline's velocity per point (the analytic mode is transverse).
vel: match recorded() {
Some(rec) => recorded_polyline(rec, t)
.iter()
.map(|p| [p.2, p.3])
.collect(),
None => analytic_polyline(t).iter().map(|p| [0.0, p.2]).collect(),
},
});
solver.set_moving_body(body);
let g = Grid::cubic(nx, ny_grid, nz, h);