R2-b/R3: embedded3_added_mass (the cut-cell added-mass pin, the overset instrument's parameters: n 64/128 C_m 1.087/1.127 vs the confined potential-flow 1.071 + Stokes 0.064 = 1.135, the overset's 1.097/1.127); flag tests: the capsule's tip inset (RTX_E3_FLAG_TIP_INSET, default FLAG_HALF — the apex ON the benchmark's tip A; every earlier record had it 10 mm beyond, =0 restores), root fillet knob RTX_E3_FLAG_FILLET (5 mm: no effect), the tip CSV column = the record's tip in recorded mode
CI / Build (macos-latest) (push) Waiting to run
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 / Format Check (push) Failing after 3s
CI / CI Success (push) Blocked by required conditions
Performance Benchmarks / Run Benchmarks (push) Failing after 4s
CI / Build (ubuntu-latest) (push) Failing after 4s
CI / Clippy Check (push) Failing after 4s
Documentation / Build User Guide (push) Successful in 5s
CI / Build CPU-Only (Explicit) (push) Failing after 58s
Documentation / Build API Documentation (push) Failing after 59s

Co-Authored-By: Claude Fable 5.1 <[email protected]>
This commit is contained in:
Omar Sobh
2026-09-21 19:33:59 -05:00
co-authored by Claude Fable 5.1
parent d9239961ad
commit 83922974d7
3 changed files with 268 additions and 4 deletions
@@ -50,9 +50,34 @@ fn deflection(s: f64, t: f64) -> (f64, f64) {
)
}
/// R3 (2026-09-21): the capsule's tip inset (`RTX_E3_FLAG_TIP_INSET`,
/// metres, default `FLAG_HALF`): the last centreline point is pulled back
/// along the last segment so the capsule's apex sits ON the benchmark's
/// tip A. Every record before this date had the apex 10 mm beyond A
/// (`=0` restores them).
fn tip_inset() -> f64 {
std::env::var("RTX_E3_FLAG_TIP_INSET")
.ok()
.and_then(|v| v.parse().ok())
.unwrap_or(FLAG_HALF)
}
/// The centreline point `m` of `n` at `t`: (x, y, vx, vy) — the first
/// mode, or (S2-9) the recorded FSI2 kinematics along its stations.
/// mode, or (S2-9) the recorded FSI2 kinematics along its stations; the
/// last point carries the tip inset.
fn centreline(m: usize, n: usize, t: f64) -> (f64, f64, f64, f64) {
let inset = tip_inset();
if m < n || inset <= 0.0 {
return centreline_raw(m, n, t);
}
let (ax, ay, _, _) = centreline_raw(n - 1, n, t);
let (bx, by, bvx, bvy) = centreline_raw(n, n, t);
let len = ((bx - ax).powi(2) + (by - ay).powi(2)).sqrt();
let f = (1.0 - inset / len).max(0.0);
(ax + f * (bx - ax), ay + f * (by - ay), bvx, bvy)
}
fn centreline_raw(m: usize, n: usize, t: f64) -> (f64, f64, f64, f64) {
let s = m as f64 / n as f64;
if let Some(rec) = recorded() {
thread_local! {