embedded3 S2-7b: the curved-wall instrument (tests/embedded3_wall_position_curved.rs: Taylor–Couette between embedded cylinders, rigid-rotation linear mode, outer-driven mode; walls' effective radii, pressure error by cell class against the exact p(r), wall-flux and ghost diagnostics); the sphere operator probe's sub-bands and force units; two host prototypes, default off, device refuses them: RTX_E3_WALL_EXCHANGE=axisfoot (the axis exchange takes the wall velocity at the axis foot — the S2-7 default read the solid face's own value, exact only for a uniform wall velocity: rigid rotation A 1.012 → 1.003) and RTX_E3_CONV_SIDES=exact (convective mass fluxes from the sides' own apertures; moves nothing)
CI / Build CPU-Only (Explicit) (push) Failing after 4s
Documentation / Build API Documentation (push) Failing after 4s
Documentation / Build User Guide (push) Successful in 4s
CI / Format Check (push) Failing after 10s
CI / Build (ubuntu-latest) (push) Failing after 1m25s
CI / Clippy Check (push) Failing after 1m47s
Performance Benchmarks / Run Benchmarks (push) Successful in 2m19s
CI / CI Success (push) Canceled after 0s
CI / Build (macos-latest) (push) Canceled after 0s
CI / Test (macos-latest) (push) Canceled after 0s
CI / Test (ubuntu-latest) (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 / Build CPU-Only (Explicit) (push) Failing after 4s
Documentation / Build API Documentation (push) Failing after 4s
Documentation / Build User Guide (push) Successful in 4s
CI / Format Check (push) Failing after 10s
CI / Build (ubuntu-latest) (push) Failing after 1m25s
CI / Clippy Check (push) Failing after 1m47s
Performance Benchmarks / Run Benchmarks (push) Successful in 2m19s
CI / CI Success (push) Canceled after 0s
CI / Build (macos-latest) (push) Canceled after 0s
CI / Test (macos-latest) (push) Canceled after 0s
CI / Test (ubuntu-latest) (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
Co-Authored-By: Claude Fable 5.1 <[email protected]>
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
c430510802
commit
d25a36d908
@@ -221,6 +221,8 @@ impl Mask {
|
||||
wall_exchange_axis: false,
|
||||
cv_sides_exact: false,
|
||||
wall_order2_centroid: false,
|
||||
wall_exchange_foot: false,
|
||||
conv_sides_exact: false,
|
||||
grad_weights: None,
|
||||
diffusion_centroid: false,
|
||||
face_shifts: None,
|
||||
@@ -435,6 +437,29 @@ impl Mask {
|
||||
/// crosses a side (the in-plane momentum residual on oblique walls).
|
||||
/// `None` at a domain side (the default stays).
|
||||
fn exact_cv_sides(&self, cut: &CutGeometry, c: usize, p: [i64; 3]) -> Option<[[f64; 2]; 3]> {
|
||||
let parts = self.exact_cv_side_parts(cut, c, p)?;
|
||||
let mut ap = [[1.0; 2]; 3];
|
||||
for d in 0..3 {
|
||||
for side in 0..2 {
|
||||
ap[d][side] = if d == c {
|
||||
parts[d][side].0
|
||||
} else {
|
||||
0.5 * (parts[d][side].0 + parts[d][side].1)
|
||||
};
|
||||
}
|
||||
}
|
||||
Some(ap)
|
||||
}
|
||||
|
||||
/// The parts of [`Self::exact_cv_sides`]: across `c`, the (far half of
|
||||
/// `cell_minus`'s face, near half of `cell_plus`'s face) apertures per
|
||||
/// side; along `c`, the centre plane's aperture (twice).
|
||||
pub(super) fn exact_cv_side_parts(
|
||||
&self,
|
||||
cut: &CutGeometry,
|
||||
c: usize,
|
||||
p: [i64; 3],
|
||||
) -> Option<[[(f64, f64); 2]; 3]> {
|
||||
let lat = self.lattice();
|
||||
let g = self.grid;
|
||||
let mut pm = p;
|
||||
@@ -456,7 +481,7 @@ impl Mask {
|
||||
corner(cell, o)
|
||||
}
|
||||
};
|
||||
let mut ap = [[1.0; 2]; 3];
|
||||
let mut ap = [[(1.0, 1.0); 2]; 3];
|
||||
for d in 0..3 {
|
||||
if d == c {
|
||||
// The two cells' centre planes across `c`: corners at the
|
||||
@@ -469,7 +494,8 @@ impl Mask {
|
||||
o[d2] = o2;
|
||||
value(*cell, o, true)
|
||||
};
|
||||
ap[d][side] = super::cut::quad_fraction(mid(0, 0), mid(1, 0), mid(0, 1), mid(1, 1));
|
||||
let a = super::cut::quad_fraction(mid(0, 0), mid(1, 0), mid(0, 1), mid(1, 1));
|
||||
ap[d][side] = (a, a);
|
||||
}
|
||||
} else {
|
||||
let e = 3 - c - d;
|
||||
@@ -496,7 +522,7 @@ impl Mask {
|
||||
super::cut::quad_fraction(at(0, 0), at(1, 0), at(0, 1), at(1, 1))
|
||||
}
|
||||
};
|
||||
ap[d][side] = 0.5 * (half(cells[0], true) + half(cells[1], false));
|
||||
ap[d][side] = (half(cells[0], true), half(cells[1], false));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user