rtx-fsi: ECSW phase-2 offline study — POD subspace confirmed, hyperreduction refuted at this resolution
CI / Clippy Check (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
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
Performance Benchmarks / Run Benchmarks (push) Canceled after 0s
CI / Format Check (push) Canceled after 0s
CI / Clippy Check (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
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
Performance Benchmarks / Run Benchmarks (push) Canceled after 0s
CI / Format Check (push) Canceled after 0s
fsi3_ecsw_offline.rs (env-gated on RTX_ECSW_SNAP; committed default is a no-op) measures the three pre-registered quantities on the harvested run-7 flag trajectory, with a numbering self-check (clamped-DOF displacement exactly 0.0 across all 3,294 snapshots). Measured: (1) the flapping manifold compresses 560 free DOFs to 12-20 POD modes at ~0.5% held-out rms projection error — the subspace exists. (2) ECSW has NOTHING TO EXPLOIT on the 70-element flag: the NNLS residual sits at single-element scale until nearly every element joins (31 el -> 10%, 51 -> 10%, 67 -> 2.5%, 70 -> 1e-15; held-out == training everywhere; cycle-only manifold identical) — each macroscopic Quad8 carries non-redundant virtual work, so no sub-percent sample smaller than the mesh exists. (3) full reduced assembly 548 us/eval; ECSW at best 1.4x at a useless 10% residual. ReducedNonlinearModel gains assemble_reduced_force (the measured quantity). The campaign's >=10x structural gate cannot come from hyperreduction at the validated resolution — recorded in the campaign doc with the re-scope options. Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01X2GmJXeQ2njUecEKiJZ1G2
This commit is contained in:
co-authored by
Claude Fable 5
parent
d9d8801f1a
commit
50e382c046
@@ -245,6 +245,28 @@ impl<'a> ReducedNonlinearModel<'a> {
|
||||
self.active.len()
|
||||
}
|
||||
|
||||
/// Assemble the weighted reduced internal force `Σ w_e V_e' f_e(u)`
|
||||
/// over the active element set at a full free-DOF displacement — the
|
||||
/// per-Newton-iteration cost ECSW reduces, exposed for wall-clock
|
||||
/// measurement (full-active vs sampled model on the same states).
|
||||
pub fn assemble_reduced_force(
|
||||
&self,
|
||||
free_displacement: &DVector<f64>,
|
||||
) -> FeaResult<DVector<f64>> {
|
||||
let modes = self.basis.ncols();
|
||||
let spatial_dim = self.mesh.spatial_dimension;
|
||||
let mut force = DVector::zeros(modes);
|
||||
for &(index, weight) in &self.active {
|
||||
let reduced = self.operators[index].reduced_internal_force(
|
||||
self.materials,
|
||||
spatial_dim,
|
||||
free_displacement,
|
||||
)?;
|
||||
force += reduced * weight;
|
||||
}
|
||||
Ok(force)
|
||||
}
|
||||
|
||||
/// Newton in reduced coordinates: solve
|
||||
/// `V' f_int(V q) = V' f_ext` and return the expanded free-DOF
|
||||
/// displacement `V q`.
|
||||
|
||||
Reference in New Issue
Block a user