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
@@ -83,7 +83,10 @@ impl Mask {
}
}
}
if nodes.iter().all(|&(idx, _)| self.is_fluid_cell(idx)) {
// A virtually merged small cell carries its master's pressure
// unknown, not its own: it is dropped from the fit.
let usable = |idx: usize| self.is_fluid_cell(idx) && self.master(idx).is_none();
if nodes.iter().all(|&(idx, _)| usable(idx)) {
return Some(nodes.iter().map(|&(idx, w)| w * p[idx]).sum());
}
// Weighted by the z-direction weight (a z-invariant field then fits
@@ -96,7 +99,7 @@ impl Mask {
for _ in 0..dirs(ny, fy).len() * dirs(nx, fx).len() {
let &(idx, _) = it.next().expect("node");
let _ = dk;
if self.is_fluid_cell(idx) {
if usable(idx) {
let (k, j, i) = g.kji(idx);
pts.push((
(i as f64 + 0.5) * dx,