rtx-cfd: overset_cfd1 prints five CV boxes (all outside the fringe ring), the wall pressure/viscous split and the fringe extents at the settled state
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
Performance Benchmarks / Run Benchmarks (push) Canceled after 0s
CI / Format Check (push) Canceled after 0s
CI / Clippy Check (push) Canceled after 0s
Documentation / Build API Documentation (push) Canceled after 0s
Documentation / Build User Guide (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
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
Performance Benchmarks / Run Benchmarks (push) Canceled after 0s
CI / Format Check (push) Canceled after 0s
CI / Clippy Check (push) Canceled after 0s
Documentation / Build API Documentation (push) Canceled after 0s
Documentation / Build User Guide (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
Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01X2GmJXeQ2njUecEKiJZ1G2
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
134ac03870
commit
cbec40b999
@@ -285,6 +285,65 @@ async fn run_cfd1(ny: usize) -> CfdResult<Cfd1> {
|
||||
100.0 * (ring.0 - hole.0) / wall[0],
|
||||
100.0 * (hole.0 - wall[0]) / wall[0],
|
||||
);
|
||||
// The wall load split and the fringe ring's extent (the tight box in
|
||||
// the sensitivity list must stay outside it).
|
||||
let (mut jmin, mut jmax, mut imin, mut imax) = (usize::MAX, 0, usize::MAX, 0);
|
||||
for e in &solver.overlap().fringe_cells {
|
||||
jmin = jmin.min(e.j);
|
||||
jmax = jmax.max(e.j);
|
||||
imin = imin.min(e.i);
|
||||
imax = imax.max(e.i);
|
||||
}
|
||||
println!(
|
||||
" wall load split: pressure ({:.4}, {:.4}) viscous ({:.4}, {:.4}); fringe ring cells i {imin}–{imax} (x {:.3}–{:.3}) j {jmin}–{jmax} (y {:.3}–{:.3})",
|
||||
load.pressure[0],
|
||||
load.pressure[1],
|
||||
load.viscous[0],
|
||||
load.viscous[1],
|
||||
imin as f64 * h,
|
||||
(imax + 1) as f64 * h,
|
||||
jmin as f64 * h,
|
||||
(jmax + 1) as f64 * h
|
||||
);
|
||||
// Box sensitivity of the control-volume route: the same balance on
|
||||
// other rectangles, all outside the fringe ring (x 0.110–0.640, y
|
||||
// 0.110–0.290 at ny = 41 — a first list had a box at x0 = 0.12 cutting
|
||||
// through it and read −21 %). A route that moves with the box by more
|
||||
// than its own formula error cannot arbitrate the gap.
|
||||
for (x0, x1, y0, y1) in [
|
||||
(0.10, 0.75, 0.05, 0.36),
|
||||
(0.09, 0.70, 0.07, 0.34),
|
||||
(0.08, 1.00, 0.03, 0.38),
|
||||
(0.10, 1.50, 0.05, 0.36),
|
||||
(0.10, 0.75, 0.02, 0.39),
|
||||
] {
|
||||
let boxc = (
|
||||
(x0 / h).round() as usize,
|
||||
(x1 / h).round() as usize,
|
||||
(y0 / h).round() as usize,
|
||||
(y1 / h).round() as usize,
|
||||
);
|
||||
let (bx, by) = solver
|
||||
.background()
|
||||
.mask()
|
||||
.expect("mask")
|
||||
.control_volume_force(
|
||||
&field.background.u,
|
||||
&field.background.v,
|
||||
&field.background.p,
|
||||
&field.background.u_old,
|
||||
&field.background.v_old,
|
||||
dt,
|
||||
RHO,
|
||||
mu,
|
||||
None,
|
||||
boxc,
|
||||
);
|
||||
println!(
|
||||
" CV box x {x0:.2}–{x1:.2} y {y0:.2}–{y1:.2}: drag {bx:.4} ({:+.2}% vs wall) lift {by:.4}",
|
||||
100.0 * (bx - wall[0]) / wall[0]
|
||||
);
|
||||
}
|
||||
Ok(Cfd1 {
|
||||
drag_surface: load.total()[0],
|
||||
lift_surface: load.total()[1],
|
||||
|
||||
Reference in New Issue
Block a user