embedded3: GuessBasis re-export behind the cuda feature (the host-only build broke); A2 build: no convective exchange with prescribed faces (RTX_E3_EXCHANGE_CONVECTION=off, host + device bit 10, load route consistent)
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
CI / Build CPU-Only (Explicit) (push) Failing after 4s
Documentation / Build API Documentation (push) Failing after 4s
Documentation / Build User Guide (push) Successful in 5s
CI / Format Check (push) Failing after 12s
CI / Clippy Check (push) Failing after 37s
CI / Build (ubuntu-latest) (push) Failing after 2m48s
Performance Benchmarks / Run Benchmarks (push) Successful in 4m4s

Co-Authored-By: Claude Fable 5.1 <[email protected]>
This commit is contained in:
Omar Sobh
2026-09-19 19:22:08 -05:00
co-authored by Claude Fable 5.1
parent d7250bc4cf
commit 77ecc54b24
8 changed files with 43 additions and 5 deletions
@@ -235,14 +235,20 @@ __device__ double cut_face_update(const E3Params& g, const E3Ptrs& f, const E3Cu
(void)n; (void)x;
/* convection through the plus face */
double u_plus, delta_plus;
if (f_up1 >= 0) {
/* bit 10 of wall_order (A2): a prescribed neighbour face exchanges no convective momentum */
const int* opn = c == 0 ? m.open_u : (c == 1 ? m.open_v : m.open_w);
int presc_up = (g.wall_order & 1024) && f_up1 >= 0 && !opn[f_up1];
int presc_dn = (g.wall_order & 1024) && f_dn1 >= 0 && !opn[f_dn1];
if (presc_up) { u_plus = u0; delta_plus = 0.0; }
else if (f_up1 >= 0) {
if (g.scheme == SCHEME_UPWIND) delta_plus = 0.0;
else if (m_plus >= 0.0) delta_plus = face_corr3(g.scheme, f_dn1 >= 0, dn1, u0, up1);
else delta_plus = face_corr3(g.scheme, f_up2 >= 0, up2, up1, u0);
u_plus = upwind3(m_plus, u0, up1);
} else { u_plus = upwind3(m_plus, u0, beyond_p); delta_plus = 0.0; }
double u_minus, delta_minus;
if (f_dn1 >= 0) {
if (presc_dn) { u_minus = u0; delta_minus = 0.0; }
else if (f_dn1 >= 0) {
if (g.scheme == SCHEME_UPWIND) delta_minus = 0.0;
else if (m_minus >= 0.0) delta_minus = face_corr3(g.scheme, f_dn2 >= 0, dn2, dn1, u0);
else delta_minus = face_corr3(g.scheme, f_up1 >= 0, up1, u0, dn1);