fsi2 harness: RTX_FSI2O_PATCH_CONVECTION knob (tvd default / upwind / none) on the overset patch, printed in the march's coupling header and the replay's PRESCRIBED header — P5-3's near-wake dispersion test on the ny 62 fixed-motion replay; harness files under the pinned toolchain's cargo fmt
CI / Build CPU-Only (Explicit) (push) Failing after 4s
Documentation / Build User Guide (push) Successful in 6s
CI / Clippy Check (push) Failing after 44s
Performance Benchmarks / Run Benchmarks (push) Successful in 2m57s
CI / Build (ubuntu-latest) (push) Failing after 2m6s
Documentation / Build API Documentation (push) Failing after 5s
CI / Format Check (push) Failing after 11s
CI / Build (macos-latest) (push) Failing after 10s
CI / Test (macos-latest) (push) Skipped
CI / Test (ubuntu-latest) (push) Skipped
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 1s

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01LzcjQX7tvgn87CQCyg9Cfr
This commit is contained in:
Omar Sobh
2026-09-12 21:18:03 -05:00
co-authored by Claude Fable 5.1
parent 754dcd3679
commit ff7cc2d739
4 changed files with 71 additions and 41 deletions
@@ -12,8 +12,8 @@ use std::cell::Cell;
use std::sync::{Arc, RwLock};
use nalgebra::Vector3;
use rtx_cfd::mesh::patch_gen::cylinder_flag_patch_deformed;
use rtx_cfd::mesh::PatchSide;
use rtx_cfd::mesh::patch_gen::cylinder_flag_patch_deformed;
use rtx_cfd::solvers::incompressible::{
AleBoundaries, ConvectionScheme, CurvilinearParameters, CurvilinearPisoSolver,
EmbeddedParameters, EmbeddedPisoSolver, FlowField, MgPrecision, NormalDiffusion, OversetField,
@@ -24,7 +24,7 @@ use rtx_cfd::{CfdConfig, CfdResult};
use rtx_fea::mesh::{Mesh, NodeId};
use rtx_fsi::{FluidFace, WettedSurface};
use super::{flag_mesh, inflow_for, BenchmarkCase, Interface, FLAG_X1, H, L, NU_F, RHO_F};
use super::{BenchmarkCase, FLAG_X1, H, Interface, L, NU_F, RHO_F, flag_mesh, inflow_for};
const CYL_CENTRE: [f64; 2] = [0.2, 0.2];
const CYL_R: f64 = 0.05;
@@ -45,6 +45,17 @@ fn patch_offset_h() -> f64 {
.unwrap_or(6.0)
}
/// The patch's convection scheme (`RTX_FSI2O_PATCH_CONVECTION`: `tvd`
/// (default, van Albada), `upwind`, `none`) — P5-3's near-wake dispersion
/// knob on the fixed-motion replay.
pub fn patch_convection() -> PatchConvection {
match std::env::var("RTX_FSI2O_PATCH_CONVECTION").as_deref() {
Ok("upwind") => PatchConvection::Upwind,
Ok("none") => PatchConvection::None,
_ => PatchConvection::TvdVanAlbada,
}
}
/// The patch's across-rows (`RTX_FSI2O_PATCH_ROWS`, 12; scale it with the
/// offset to keep the wall spacing).
fn patch_rows() -> usize {
@@ -327,7 +338,7 @@ impl OversetFluid {
config,
CurvilinearParameters {
tolerance: 1e-5,
convection: PatchConvection::TvdVanAlbada,
convection: patch_convection(),
normal_diffusion: NormalDiffusion::LineImplicit,
..CurvilinearParameters::default()
},