embedded3: cut predictor convection carries ρ (host + e3_cut.cu; density-scaling pin); operator load route includes the wall exchange (exchange.rs); reconstructed_parts, probe aperture floor knob; dfg_split diagnostic test
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
CI / Test (macos-latest) (push) Blocked by required conditions
CI / Build CPU-Only (Explicit) (push) Failing after 3s
Documentation / Build API Documentation (push) Failing after 4s
CI / Build (ubuntu-latest) (push) Failing after 4s
Documentation / Build User Guide (push) Successful in 4s
CI / Format Check (push) Failing after 10s
CI / Clippy Check (push) Failing after 35s
Performance Benchmarks / Run Benchmarks (push) Successful in 1m32s

Co-Authored-By: Claude Fable 5.1 <[email protected]>
This commit is contained in:
Omar Sobh
2026-09-18 03:59:57 -05:00
co-authored by Claude Fable 5.1
parent 680041d63d
commit f6add276c0
11 changed files with 454 additions and 9 deletions
@@ -201,7 +201,9 @@ impl Solver {
// control volume (zero for a body at rest, the swept rate
// otherwise) multiplies the face's own value, so a uniform field
// stays uniform on any wall motion.
conv -= mass_out * u0;
// The mass fluxes above are volume fluxes: the momentum flux carries ρ
// (inertia, diffusion and the pressure are dynamic).
let conv = rho * (conv - mass_out * u0);
let p_plus = lat.cell(cell_plus).map_or(0.0, |ci| field.p[ci]);
let p_minus = lat.cell(cell_minus).map_or(0.0, |ci| field.p[ci]);
let pressure = -(p_plus - p_minus) * cv.alpha * area[c];
@@ -213,6 +213,11 @@ impl Solver {
Mask::build_cut_from(body, g, t, self.params.boundaries, prev)
}
}
.map(|mut m| {
m.scheme = self.params.convection_scheme;
m.density = self.fluid.density;
m
})
.expect("embedded mask")
}