R8-c: drop zero summands from cut_wall_loads; extrapolation diagnostics beyond FAR_OUTSIDE with the worst point

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
Omar Sobh
2026-09-25 20:45:04 -05:00
co-authored by Claude Opus 5.5
parent 9c2ae32061
commit 05bf4c74a0
3 changed files with 33 additions and 18 deletions
@@ -26,8 +26,8 @@ use embedded3_flag_kinematics::{Recorded, recorded};
use rtx_cfd::solvers::incompressible::ConvectionScheme;
use rtx_cfd::solvers::incompressible::embedded3::step::device::DeviceStep;
use rtx_cfd::solvers::incompressible::embedded3::{
Body, Boundaries, DeviceSdf, Field, Fluid, Grid, HexPlate, Parameters, PlateSurface, Side,
Solver, WallScheme, write_vtk,
Body, Boundaries, DeviceSdf, FAR_OUTSIDE, Field, Fluid, Grid, HexPlate, Parameters,
PlateSurface, Side, Solver, WallScheme, write_vtk,
};
use std::io::Write as _;
@@ -735,7 +735,7 @@ fn flag_wake_on_the_device() {
let extrap_share = tr.extrapolated_load / abs_f.max(1e-300);
let ms = lap.elapsed().as_secs_f64() * 1e3;
println!(
" transfer t {t:.4}: {} loads ({} flag); route − Σ {:.1e} N; flag F {:+.4} {:+.4} {:+.4} N, M {:+.5} {:+.5} {:+.5} N m; |ΔF|/Σ|F| {rel_f:.1e}, |ΔM|/(Σ|F| L) {rel_m:.1e}; Newton ≤ {:.1e} m, outside ≤ {:.2e} ({} extrapolated, {:.1e} of Σ|F|), interior share {:.3}; {ms:.0} ms",
" transfer t {t:.4}: {} loads ({} flag); route − Σ {:.1e} N; flag F {:+.4} {:+.4} {:+.4} N, M {:+.5} {:+.5} {:+.5} N m; |ΔF|/Σ|F| {rel_f:.1e}, |ΔM|/(Σ|F| L) {rel_m:.1e}; Newton ≤ {:.1e} m, outside ≤ {:.2e} at ({:.4}, {:.4}, {:.4}) ({} beyond {FAR_OUTSIDE}, {:.1e} of Σ|F|), interior share {:.3}; {ms:.0} ms",
loads.len(),
flag.len(),
nrm([route[0] - sum[0], route[1] - sum[1], route[2] - sum[2]]),
@@ -747,6 +747,9 @@ fn flag_wake_on_the_device() {
tr.moment_in[2],
tr.max_residual,
tr.max_outside,
tr.worst_point[0],
tr.worst_point[1],
tr.worst_point[2],
tr.extrapolated,
extrap_share,
tr.interior_share