Commit Graph
1 Commits
Author SHA1 Message Date
Omar SobhandClaude Fable 5 4e90177aa9 rtx-fsi: C2 — FSI2's coupled march, and the wrong attractor measured
Performance Benchmarks / Run Benchmarks (push) Canceled after 0s
CI / Format Check (push) Canceled after 0s
CI / Clippy Check (push) Canceled after 0s
CI / Build (macos-latest) (push) Canceled after 0s
CI / Build (ubuntu-latest) (push) Canceled after 0s
CI / Test (macos-latest) (push) Canceled after 0s
CI / Test (ubuntu-latest) (push) Canceled after 0s
CI / Build CPU-Only (Explicit) (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 / Distributed Training Tests (push) Canceled after 0s
CI / CI Success (push) Canceled after 0s
Documentation / Build API Documentation (push) Canceled after 0s
Documentation / Build User Guide (push) Canceled after 0s
The unsteady coupling on the piston pattern with the real solvers: per
TIME STEP, Aitken subiterations of (8x-subcycled embedded TVD/multigrid
fluid <-> flag nonlinear-Newmark step), the fluid re-runnable through
snapshot/restore + a field clone, the flag re-runnable because the
stepper commits nothing, the moving polygon carrying the flag's actual
interface velocity. Conservation 8.3e-12 over 9,263 coupled steps; the
rigid phase reproduces this solver's own CFD2 values at both grids
before anything couples.

What the 30 s studies measured (ny = 62 AND 82, three protocols): the
coupled system self-excites into a wake-forced cycle at 3.729/3.728 Hz
with uy(A) +-17.3 mm at both grids - grid-converged, protocol-
independent, kinematically genuine (ux locks 2x uy) - and NOT the
benchmark's mode-2 resonant cycle (1.93 Hz / 81.6 mm; the flag's vacuum
mode 2 is 1.9245 Hz). Diagnosis measured stepwise: the staggered phase
lag starves the resonant channel (a subcycle=2 probe redirected growth
to 1.9 Hz as predicted), and tighter dt_c is blocked because wall-
velocity noise = displacement-tolerance / dt_c while the needed
tolerance sits below the discrete interface noise floor (~1.3e-4 at
full inflow, mask flips through beta dt^2/m). The route to the
benchmark cycle is lowering that floor, not iterating against it.

Robustness, both measured: rare wild tractions (19 samples in 2.4M)
clamped at 20x the sample median - clamped, not dropped: a hard drop
makes the pass discontinuous and the subiteration bounces at step
scale; and Aitken "divergence" verdicts within 5x tolerance accepted as
noise bounces over well-predicted steps (counted, bounded).

The committed default (t_end = 7, ~9.5 min) pins the deterministic
release response (uy 3.773 +- 3.792 mm, band +-35%); study horizons
>= 25 s pin the measured 3.73 Hz attractor so any material change is
loud. Full study record in the module docs and omni-cortex
solver_status.md.

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Lnyrw33Lu6rUhW42E9KHwq
2026-08-21 02:45:43 -07:00