embedded3 item 10: the apertured cut-cell wall (AM-wall) — cutwall.rs classification, apertured projection with the compatible wall flux, cut predictor (V_u = αhA, averaged mass fluxes, implicit wall shear, inertia floor), cut load route; sphere MMS CutCell ≤ GhostBinary at n 12/24 (ratio 0.96), loads 9.3/10.7 % at n 24
CI / Build CPU-Only (Explicit) (push) Failing after 4s
Documentation / Build API Documentation (push) Failing after 4s
CI / Format Check (push) Failing after 12s
Documentation / Build User Guide (push) Successful in 5s
CI / Build (ubuntu-latest) (push) Failing after 1m50s
CI / Clippy Check (push) Failing after 2m5s
Performance Benchmarks / Run Benchmarks (push) Successful in 2m40s
CI / Build (macos-latest) (push) Canceled after 0s
CI / Test (ubuntu-latest) (push) Canceled after 0s
CI / Test (macos-latest) (push) Canceled after 0s
CI / Python Bindings (maturin) (macos-latest) (push) Canceled after 0s
CI / Distributed Training Tests (push) Canceled after 0s
CI / CI Success (push) Canceled after 0s
CI / Python Bindings (maturin) (ubuntu-latest) (push) Canceled after 0s
CI / WASM Build + Size Check (push) Canceled after 0s
CI / Build CPU-Only (Explicit) (push) Failing after 4s
Documentation / Build API Documentation (push) Failing after 4s
CI / Format Check (push) Failing after 12s
Documentation / Build User Guide (push) Successful in 5s
CI / Build (ubuntu-latest) (push) Failing after 1m50s
CI / Clippy Check (push) Failing after 2m5s
Performance Benchmarks / Run Benchmarks (push) Successful in 2m40s
CI / Build (macos-latest) (push) Canceled after 0s
CI / Test (ubuntu-latest) (push) Canceled after 0s
CI / Test (macos-latest) (push) Canceled after 0s
CI / Python Bindings (maturin) (macos-latest) (push) Canceled after 0s
CI / Distributed Training Tests (push) Canceled after 0s
CI / CI Success (push) Canceled after 0s
CI / Python Bindings (maturin) (ubuntu-latest) (push) Canceled after 0s
CI / WASM Build + Size Check (push) Canceled after 0s
Co-Authored-By: Claude Fable 5.1 <[email protected]>
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
d337afa8f9
commit
0e4c97ed24
@@ -10,6 +10,7 @@
|
||||
|
||||
use super::Grid;
|
||||
use super::body::Body;
|
||||
use super::cut::CutGeometry;
|
||||
use super::step::{Boundaries, Side};
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
@@ -45,7 +46,7 @@ pub(crate) struct StencilNode {
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
struct Ghost {
|
||||
pub(super) struct Ghost {
|
||||
idx: usize,
|
||||
x: f64,
|
||||
y: f64,
|
||||
@@ -62,17 +63,20 @@ struct Ghost {
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct Mask {
|
||||
grid: Grid,
|
||||
periodic_z: bool,
|
||||
cell_fluid: Vec<bool>,
|
||||
u_kind: Vec<FaceKind>,
|
||||
v_kind: Vec<FaceKind>,
|
||||
w_kind: Vec<FaceKind>,
|
||||
u_ghosts: Vec<Ghost>,
|
||||
v_ghosts: Vec<Ghost>,
|
||||
w_ghosts: Vec<Ghost>,
|
||||
anchor: usize,
|
||||
fluid_cells: usize,
|
||||
pub(super) grid: Grid,
|
||||
pub(super) periodic_z: bool,
|
||||
pub(super) cell_fluid: Vec<bool>,
|
||||
pub(super) u_kind: Vec<FaceKind>,
|
||||
pub(super) v_kind: Vec<FaceKind>,
|
||||
pub(super) w_kind: Vec<FaceKind>,
|
||||
pub(super) u_ghosts: Vec<Ghost>,
|
||||
pub(super) v_ghosts: Vec<Ghost>,
|
||||
pub(super) w_ghosts: Vec<Ghost>,
|
||||
pub(super) anchor: usize,
|
||||
pub(super) fluid_cells: usize,
|
||||
/// The cut geometry of the apertured wall (`WallScheme::CutCell`,
|
||||
/// `cutwall.rs`); `None` on the binary ghost wall.
|
||||
pub(super) cut: Option<CutGeometry>,
|
||||
}
|
||||
|
||||
/// The z lattice position of a query: the lower plane index, the upper
|
||||
@@ -479,9 +483,38 @@ impl Mask {
|
||||
w_ghosts,
|
||||
anchor,
|
||||
fluid_cells,
|
||||
cut: None,
|
||||
})
|
||||
}
|
||||
|
||||
/// The cut geometry (apertured wall only).
|
||||
#[must_use]
|
||||
pub fn cut(&self) -> Option<&CutGeometry> {
|
||||
self.cut.as_ref()
|
||||
}
|
||||
/// Fluid area fraction of a u / v / w face (1 on the binary wall).
|
||||
#[inline]
|
||||
#[must_use]
|
||||
pub fn a_u(&self, idx: usize) -> f64 {
|
||||
self.cut.as_ref().map_or(1.0, |c| c.a_u[idx])
|
||||
}
|
||||
#[inline]
|
||||
#[must_use]
|
||||
pub fn a_v(&self, idx: usize) -> f64 {
|
||||
self.cut.as_ref().map_or(1.0, |c| c.a_v[idx])
|
||||
}
|
||||
#[inline]
|
||||
#[must_use]
|
||||
pub fn a_w(&self, idx: usize) -> f64 {
|
||||
self.cut.as_ref().map_or(1.0, |c| c.a_w[idx])
|
||||
}
|
||||
/// Fluid volume fraction of a cell (1 on the binary wall).
|
||||
#[inline]
|
||||
#[must_use]
|
||||
pub fn vol(&self, idx: usize) -> f64 {
|
||||
self.cut.as_ref().map_or(1.0, |c| c.vol[idx])
|
||||
}
|
||||
|
||||
#[inline]
|
||||
#[must_use]
|
||||
pub fn is_fluid_cell(&self, idx: usize) -> bool {
|
||||
|
||||
Reference in New Issue
Block a user