embedded3 S2-1: the traction sampler on the cut field (pressure fit excludes merged cells; sampler route in the sphere MMS and DFG drivers)
CI / Test (macos-latest) (push) Blocked by required conditions
CI / Test (ubuntu-latest) (push) Blocked by required conditions
CI / Python Bindings (maturin) (macos-latest) (push) Blocked by required conditions
CI / Python Bindings (maturin) (ubuntu-latest) (push) Blocked by required conditions
CI / WASM Build + Size Check (push) Blocked by required conditions
CI / Distributed Training Tests (push) Blocked by required conditions
CI / CI Success (push) Blocked by required conditions
CI / Build (macos-latest) (push) Waiting to run
Performance Benchmarks / Run Benchmarks (push) Failing after 3s
CI / Build (ubuntu-latest) (push) Failing after 3s
CI / Clippy Check (push) Failing after 5s
CI / Format Check (push) Failing after 5s
Documentation / Build User Guide (push) Successful in 5s
CI / Build CPU-Only (Explicit) (push) Failing after 1m2s
Documentation / Build API Documentation (push) Failing after 1m4s

Co-Authored-By: Claude Fable 5.1 <[email protected]>
This commit is contained in:
Omar Sobh
2026-09-17 18:47:46 -05:00
co-authored by Claude Fable 5.1
parent 32546b1222
commit 2c94ae0bb1
4 changed files with 52 additions and 8 deletions
@@ -107,9 +107,14 @@ pub struct Measurement {
pub l2_velocity: f64,
pub max_div: f64,
pub ghost_correction: f64,
/// The scheme's wall route (the traction sampler on the binary wall,
/// the operator route on the cut wall).
pub force_surface: [f64; 3],
pub skipped: usize,
pub force_cv: [f64; 3],
/// The traction sampler on the cut wall (S2-1); the wall route again
/// on the binary wall.
pub force_sampler: [f64; 3],
}
/// March the manufactured solution with the sphere at `c` to steady state on grid `n`.
@@ -250,6 +255,10 @@ pub fn measure(n: usize, scheme: WallScheme, c: (f64, f64, f64)) -> Measurement
let (i0, i1) = (n / 8, n - n / 8);
let src = |x: f64, y: f64, z: f64| source3(x, y, z);
let force_cv = mask.control_volume_force(&f, dt, RHO, MU, Some(&src), (i0, i1, i0, i1, i0, i1));
let force_sampler = match scheme {
WallScheme::GhostBinary => surface.f,
WallScheme::CutCell => mask.surface_force(body, &f, MU, t, 0.5 * h).f,
};
Measurement {
l2_velocity: (sq / vol).sqrt(),
max_div,
@@ -257,5 +266,6 @@ pub fn measure(n: usize, scheme: WallScheme, c: (f64, f64, f64)) -> Measurement
force_surface: surface.f,
skipped: surface.skipped,
force_cv,
force_sampler,
}
}