embedded3 item 10b: virtual merging of small cells in the projection (fraction < 0.1 → master = largest active face neighbour; off-stencil links on the fine Poisson level; merged rhs, anchor, mass residual and source scale); static sphere rows within 0.02 %, loads 9.4/10.4 %; stadium falsifier spikes 39–54× below the binary wall (circle 6–8×), energy per event 6–9× lower
Performance Benchmarks / Run Benchmarks (push) Failing after 4s
CI / Clippy Check (push) Failing after 3s
CI / Build (ubuntu-latest) (push) Failing after 3s
CI / Format Check (push) Failing after 4s
Documentation / Build User Guide (push) Successful in 6s
Documentation / Build API Documentation (push) Failing after 19s
CI / Build CPU-Only (Explicit) (push) Failing after 1m21s
CI / Build (macos-latest) (push) Canceled after 0s
CI / Distributed Training Tests (push) Canceled after 0s
CI / Python Bindings (maturin) (macos-latest) (push) Canceled after 0s
CI / Python Bindings (maturin) (ubuntu-latest) (push) Canceled after 0s
CI / WASM Build + Size Check (push) Canceled after 0s
CI / Test (macos-latest) (push) Canceled after 0s
CI / Test (ubuntu-latest) (push) Canceled after 0s
CI / CI Success (push) Canceled after 0s

Co-Authored-By: Claude Fable 5.1 <[email protected]>
This commit is contained in:
Omar Sobh
2026-09-17 16:41:29 -05:00
co-authored by Claude Fable 5.1
parent 5b1621e6ad
commit 0fa05f2056
7 changed files with 281 additions and 16 deletions
@@ -88,6 +88,10 @@ pub struct Mask {
/// step (a dying cell empties through the apertures it had); `None` =
/// the instantaneous kinds.
pub(super) step_open: Option<(Vec<bool>, Vec<bool>, Vec<bool>, Vec<bool>)>,
/// Virtual merging (item 10b): the master cell of every small cell
/// (`usize::MAX` = its own row) — a small cell shares its pressure
/// unknown with its largest active face neighbour in the projection.
pub(super) merge_master: Vec<usize>,
}
/// The z lattice position of a query: the lower plane index, the upper
@@ -497,9 +501,27 @@ impl Mask {
cut: None,
step_apertures: None,
step_open: None,
merge_master: Vec::new(),
})
}
/// The master of a virtually merged small cell.
#[inline]
#[must_use]
pub fn master(&self, idx: usize) -> Option<usize> {
match self.merge_master.get(idx) {
Some(&m) if m != usize::MAX => Some(m),
_ => None,
}
}
#[must_use]
pub fn merged_cells(&self) -> usize {
self.merge_master
.iter()
.filter(|&&m| m != usize::MAX)
.count()
}
// The projection's unknowns (the instantaneous kinds at rest).
#[inline]
#[must_use]