fsi2 harness: RTX_FSI2O_PATCH_STRETCH knob (the patch's across stretch, 4.0 in every recorded run; printed in both headers) — P5-3's wall-normal resolution test at fixed h: the rows ladder does not build (the overlap needs outer patch cells ≈ h/2 or larger), the stretch refines the wall cell 0.227h → 0.144h → 0.088h at 4/8/16 while the outer cells grow
Performance Benchmarks / Run Benchmarks (push) Failing after 8s
CI / Format Check (push) Failing after 7s
CI / Clippy Check (push) Failing after 7s
Documentation / Build User Guide (push) Successful in 7s
CI / Build (ubuntu-latest) (push) Failing after 8s
CI / Build CPU-Only (Explicit) (push) Failing after 1m1s
Documentation / Build API Documentation (push) Failing after 1m4s
CI / Build (macos-latest) (push) Failing after 7s
CI / Python Bindings (maturin) (macos-latest) (push) Skipped
CI / Python Bindings (maturin) (ubuntu-latest) (push) Skipped
CI / WASM Build + Size Check (push) Skipped
CI / Distributed Training Tests (push) Skipped
CI / CI Success (push) Failing after 0s
CI / Test (macos-latest) (push) Skipped
CI / Test (ubuntu-latest) (push) Skipped
Performance Benchmarks / Run Benchmarks (push) Failing after 8s
CI / Format Check (push) Failing after 7s
CI / Clippy Check (push) Failing after 7s
Documentation / Build User Guide (push) Successful in 7s
CI / Build (ubuntu-latest) (push) Failing after 8s
CI / Build CPU-Only (Explicit) (push) Failing after 1m1s
Documentation / Build API Documentation (push) Failing after 1m4s
CI / Build (macos-latest) (push) Failing after 7s
CI / Python Bindings (maturin) (macos-latest) (push) Skipped
CI / Python Bindings (maturin) (ubuntu-latest) (push) Skipped
CI / WASM Build + Size Check (push) Skipped
CI / Distributed Training Tests (push) Skipped
CI / CI Success (push) Failing after 0s
CI / Test (macos-latest) (push) Skipped
CI / Test (ubuntu-latest) (push) Skipped
Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01LzcjQX7tvgn87CQCyg9Cfr
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
c7d2870580
commit
c63115053b
@@ -45,6 +45,19 @@ fn patch_offset_h() -> f64 {
|
|||||||
.unwrap_or(6.0)
|
.unwrap_or(6.0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// The patch's across stretch (`RTX_FSI2O_PATCH_STRETCH`, the geometric
|
||||||
|
/// ratio of the outer to the wall cell, 4.0 in every recorded run): with
|
||||||
|
/// 12 rows over 6 h the wall cell is 6 h (r − 1)/(r¹² − 1), r¹¹ = stretch —
|
||||||
|
/// 0.227 h / 0.144 h / 0.088 h at 4 / 8 / 16 — P5-3's wall-normal
|
||||||
|
/// resolution knob at fixed h (the rows ladder does not build: the overlap
|
||||||
|
/// needs outer cells ≈ h/2 or larger).
|
||||||
|
pub fn patch_stretch() -> f64 {
|
||||||
|
std::env::var("RTX_FSI2O_PATCH_STRETCH")
|
||||||
|
.ok()
|
||||||
|
.and_then(|v| v.parse().ok())
|
||||||
|
.unwrap_or(PATCH_STRETCH)
|
||||||
|
}
|
||||||
|
|
||||||
/// The background's convection scheme (`RTX_FSI2O_BG_CONVECTION`: `tvd`
|
/// The background's convection scheme (`RTX_FSI2O_BG_CONVECTION`: `tvd`
|
||||||
/// (default, van Albada), `upwind`) — P5-3's wake-dissipation knob on the
|
/// (default, van Albada), `upwind`) — P5-3's wake-dissipation knob on the
|
||||||
/// fixed-motion replay (the patch's scheme was excluded as the h-term's
|
/// fixed-motion replay (the patch's scheme was excluded as the h-term's
|
||||||
@@ -276,7 +289,7 @@ impl OversetFluid {
|
|||||||
FILLET,
|
FILLET,
|
||||||
patch_offset_h() * h,
|
patch_offset_h() * h,
|
||||||
patch_rows(),
|
patch_rows(),
|
||||||
PATCH_STRETCH,
|
patch_stretch(),
|
||||||
sweeps,
|
sweeps,
|
||||||
)?;
|
)?;
|
||||||
// With the warm-started regeneration (`RTX_FSI2O_WARM_SWEEPS`), the
|
// With the warm-started regeneration (`RTX_FSI2O_WARM_SWEEPS`), the
|
||||||
@@ -299,7 +312,7 @@ impl OversetFluid {
|
|||||||
FILLET,
|
FILLET,
|
||||||
patch_offset_h() * h,
|
patch_offset_h() * h,
|
||||||
patch_rows(),
|
patch_rows(),
|
||||||
PATCH_STRETCH,
|
patch_stretch(),
|
||||||
20_000,
|
20_000,
|
||||||
)?;
|
)?;
|
||||||
println!(
|
println!(
|
||||||
@@ -777,7 +790,7 @@ impl OversetFluid {
|
|||||||
FILLET,
|
FILLET,
|
||||||
patch_offset_h() * self.h,
|
patch_offset_h() * self.h,
|
||||||
patch_rows(),
|
patch_rows(),
|
||||||
PATCH_STRETCH,
|
patch_stretch(),
|
||||||
if self.warm_sweeps > 0 && self.warm_base.is_some() {
|
if self.warm_sweeps > 0 && self.warm_base.is_some() {
|
||||||
self.warm_sweeps
|
self.warm_sweeps
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ pub fn run_march_overset(case: BenchmarkCase, config: &OversetMarchConfig) -> Ov
|
|||||||
// Every setting the acceptance rule reads, printed once: P5-3 lost a
|
// Every setting the acceptance rule reads, printed once: P5-3 lost a
|
||||||
// day to a floor of 2e-4 against the overnight marches' 1e-6.
|
// day to a floor of 2e-4 against the overnight marches' 1e-6.
|
||||||
println!(
|
println!(
|
||||||
" coupling: {} (reuse {}, ω0 {}, c1 {}), floor {:.1e}, rtol {:.1e}, stall accept {:.1e}, max subit {}, predictor {}, s = {}, patch offset {} h × {} rows, patch convection {:?}, bg convection {:?}",
|
" coupling: {} (reuse {}, ω0 {}, c1 {}), floor {:.1e}, rtol {:.1e}, stall accept {:.1e}, max subit {}, predictor {}, s = {}, patch offset {} h × {} rows, patch convection {:?}, bg convection {:?}, patch stretch {}",
|
||||||
cfg.coupler,
|
cfg.coupler,
|
||||||
cfg.reuse,
|
cfg.reuse,
|
||||||
cfg.initial_relaxation,
|
cfg.initial_relaxation,
|
||||||
@@ -115,6 +115,7 @@ pub fn run_march_overset(case: BenchmarkCase, config: &OversetMarchConfig) -> Ov
|
|||||||
std::env::var("RTX_FSI2O_PATCH_ROWS").unwrap_or_else(|_| "12".into()),
|
std::env::var("RTX_FSI2O_PATCH_ROWS").unwrap_or_else(|_| "12".into()),
|
||||||
super::overset::patch_convection(),
|
super::overset::patch_convection(),
|
||||||
super::overset::bg_convection(),
|
super::overset::bg_convection(),
|
||||||
|
super::overset::patch_stretch(),
|
||||||
);
|
);
|
||||||
|
|
||||||
// Phase 1: rigid flag to t_release (`RTX_FSI2O_LOAD=dir` replaces the
|
// Phase 1: rigid flag to t_release (`RTX_FSI2O_LOAD=dir` replaces the
|
||||||
|
|||||||
@@ -413,11 +413,12 @@ fn fsi2_overset_prescribed_motion() {
|
|||||||
let dt = fluid.dt_fluid;
|
let dt = fluid.dt_fluid;
|
||||||
let (d_rigid, l_rigid) = fluid.measure_force();
|
let (d_rigid, l_rigid) = fluid.measure_force();
|
||||||
println!(
|
println!(
|
||||||
" PRESCRIBED ny = {ny}: dt {dt:.3e}, rigid drag {d_rigid:.2} lift {l_rigid:.2}, replay from t = {t0} (ramp {ramp_w} s) to {t_end}; patch offset {} h × {} rows, patch convection {:?}, bg convection {:?}",
|
" PRESCRIBED ny = {ny}: dt {dt:.3e}, rigid drag {d_rigid:.2} lift {l_rigid:.2}, replay from t = {t0} (ramp {ramp_w} s) to {t_end}; patch offset {} h × {} rows, patch convection {:?}, bg convection {:?}, patch stretch {}",
|
||||||
std::env::var("RTX_FSI2O_PATCH_OFFSET").unwrap_or_else(|_| "6".into()),
|
std::env::var("RTX_FSI2O_PATCH_OFFSET").unwrap_or_else(|_| "6".into()),
|
||||||
std::env::var("RTX_FSI2O_PATCH_ROWS").unwrap_or_else(|_| "12".into()),
|
std::env::var("RTX_FSI2O_PATCH_ROWS").unwrap_or_else(|_| "12".into()),
|
||||||
fsi2_harness::overset::patch_convection(),
|
fsi2_harness::overset::patch_convection(),
|
||||||
fsi2_harness::overset::bg_convection(),
|
fsi2_harness::overset::bg_convection(),
|
||||||
|
fsi2_harness::overset::patch_stretch(),
|
||||||
);
|
);
|
||||||
let mut csv = std::env::var("RTX_FSI2O_CSV").ok().map(|p| {
|
let mut csv = std::env::var("RTX_FSI2O_CSV").ok().map(|p| {
|
||||||
use std::io::Write as _;
|
use std::io::Write as _;
|
||||||
|
|||||||
Reference in New Issue
Block a user