pub struct SlipWall<const D: usize> { /* private fields */ }Expand description
A free-slip (far-field) wall on the face perpendicular to wall_axis (the max_side face when
true, the zero face otherwise): no penetration (zero wall-normal flux — already the
projection’s Neumann condition at a closed face) with a free tangential velocity (zero
shear). It un-pins the face’s wall-tangential edges from the auto-derived no-slip set, so the
boundary-clipped viscous operator gives the zero-shear condition. It is the lateral boundary an
isolated body needs (a confining no-slip wall would impose a spurious boundary layer).
Implementations§
Trait Implementations§
Source§impl<const D: usize, R: DecNsScalar> BoundaryZone<D, R> for SlipWall<D>
impl<const D: usize, R: DecNsScalar> BoundaryZone<D, R> for SlipWall<D>
Source§fn collect_slip_edges(
&self,
manifold: &Manifold<LatticeComplex<D, R>, R>,
out: &mut Vec<usize>,
)
fn collect_slip_edges( &self, manifold: &Manifold<LatticeComplex<D, R>, R>, out: &mut Vec<usize>, )
Add this zone’s un-pinned (free-slip) edges: edges the auto-derived no-slip set would
pin, but which this zone frees (a free-slip wall’s tangential edges, zero shear). The solver
removes them from the no-slip set.
Source§fn collect_rate_source(
&self,
_manifold: &Manifold<LatticeComplex<D, R>, R>,
_acc: &mut [R],
)
fn collect_rate_source( &self, _manifold: &Manifold<LatticeComplex<D, R>, R>, _acc: &mut [R], )
Add this zone’s forcing term to the rate source accumulator (edge cochain).
Source§fn collect_constrained_edges(
&self,
_manifold: &Manifold<LatticeComplex<D, R>, R>,
_out: &mut Vec<usize>,
)
fn collect_constrained_edges( &self, _manifold: &Manifold<LatticeComplex<D, R>, R>, _out: &mut Vec<usize>, )
Add this zone’s zero-constrained edges. Read more
Source§fn collect_lift(
&self,
_manifold: &Manifold<LatticeComplex<D, R>, R>,
_step: usize,
_out: &mut Vec<(usize, R)>,
)
fn collect_lift( &self, _manifold: &Manifold<LatticeComplex<D, R>, R>, _step: usize, _out: &mut Vec<(usize, R)>, )
Add this zone’s prescribed (inhomogeneous) edge values for march step
step. Read moreSource§fn collect_prescribed_edges(
&self,
_manifold: &Manifold<LatticeComplex<D, R>, R>,
_out: &mut Vec<usize>,
)
fn collect_prescribed_edges( &self, _manifold: &Manifold<LatticeComplex<D, R>, R>, _out: &mut Vec<usize>, )
Add this zone’s prescribed (inflow) edges, fixed at their field value.
Source§fn collect_reference_vertices(
&self,
_manifold: &Manifold<LatticeComplex<D, R>, R>,
_out: &mut Vec<usize>,
)
fn collect_reference_vertices( &self, _manifold: &Manifold<LatticeComplex<D, R>, R>, _out: &mut Vec<usize>, )
Add this zone’s outflow pressure-reference vertices.
impl<const D: usize> Copy for SlipWall<D>
Auto Trait Implementations§
impl<const D: usize> Freeze for SlipWall<D>
impl<const D: usize> RefUnwindSafe for SlipWall<D>
impl<const D: usize> Send for SlipWall<D>
impl<const D: usize> Sync for SlipWall<D>
impl<const D: usize> Unpin for SlipWall<D>
impl<const D: usize> UnsafeUnpin for SlipWall<D>
impl<const D: usize> UnwindSafe for SlipWall<D>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more