Struct P1HarmonicMeshMotionPolicy
pub struct P1HarmonicMeshMotionPolicy { /* private fields */ }Description
The bounded P1 harmonic extension which drives one fixed-topology geometry.
The solid displacement is copied to the exact conforming interface, the remaining fluid exterior is fixed, and unconstrained fluid vertices are obtained by a component-wise P1 harmonic solve on the reference topology. No coordinates or mesh velocity are inputs to this policy.
Implementations§
§impl P1HarmonicMeshMotionPolicy
impl P1HarmonicMeshMotionPolicy
pub fn new(
fluid_domain: Id<Domain>,
solid_domain: Id<Domain>,
solid_displacement: Id<Field>,
interface: Id<Connection>,
quality_gate: AleGeometryQualityGate,
solver: SolverPlan,
) -> Result<P1HarmonicMeshMotionPolicy, Diagnostic>
pub fn new( fluid_domain: Id<Domain>, solid_domain: Id<Domain>, solid_displacement: Id<Field>, interface: Id<Connection>, quality_gate: AleGeometryQualityGate, solver: SolverPlan, ) -> Result<P1HarmonicMeshMotionPolicy, Diagnostic>
Select the exact geometry driver, interface, quality, and harmonic solver.
§Errors
Returns EQ0807 when the Domain roles coincide or the selected linear
algorithm cannot solve the symmetric-positive-definite harmonic action.
pub const fn fluid_domain(self) -> Id<Domain>
pub const fn fluid_domain(self) -> Id<Domain>
Fluid Domain evaluated on the accepted current ALE geometry.
pub const fn solid_domain(self) -> Id<Domain>
pub const fn solid_domain(self) -> Id<Domain>
Solid Domain retained in its reference configuration.
pub const fn solid_displacement(self) -> Id<Field>
pub const fn solid_displacement(self) -> Id<Field>
Absolute solid-displacement Field driving the current coordinates.
pub const fn interface(self) -> Id<Connection>
pub const fn interface(self) -> Id<Connection>
Exact conserving interface whose trace drives the fluid boundary.
pub const fn quality_gate(self) -> AleGeometryQualityGate
pub const fn quality_gate(self) -> AleGeometryQualityGate
Quality gate applied before any local physical action.
pub const fn solver(self) -> SolverPlan
pub const fn solver(self) -> SolverPlan
Linear solver used solely for the harmonic extension.
Trait Implementations§
§impl Clone for P1HarmonicMeshMotionPolicy
impl Clone for P1HarmonicMeshMotionPolicy
§impl Debug for P1HarmonicMeshMotionPolicy
impl Debug for P1HarmonicMeshMotionPolicy
§impl PartialEq for P1HarmonicMeshMotionPolicy
impl PartialEq for P1HarmonicMeshMotionPolicy
§fn eq(&self, other: &P1HarmonicMeshMotionPolicy) -> bool
fn eq(&self, other: &P1HarmonicMeshMotionPolicy) -> bool
self and other values to be equal, and is used by ==.impl Copy for P1HarmonicMeshMotionPolicy
impl StructuralPartialEq for P1HarmonicMeshMotionPolicy
Auto Trait Implementations§
impl Freeze for P1HarmonicMeshMotionPolicy
impl RefUnwindSafe for P1HarmonicMeshMotionPolicy
impl Send for P1HarmonicMeshMotionPolicy
impl Sync for P1HarmonicMeshMotionPolicy
impl Unpin for P1HarmonicMeshMotionPolicy
impl UnsafeUnpin for P1HarmonicMeshMotionPolicy
impl UnwindSafe for P1HarmonicMeshMotionPolicy
Blanket Implementations§
Source§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
§fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
§impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
§type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
§fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
Source§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, Dst> ConvAsUtil<Dst> for T
impl<T, Dst> ConvAsUtil<Dst> for T
§fn approx(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
§impl<T> ConvUtil for T
impl<T> ConvUtil for T
§fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
§fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
§fn into_as<Dst>(self) -> Dstwhere
Self: Sized + Into<Dst>,
fn into_as<Dst>(self) -> Dstwhere
Self: Sized + Into<Dst>,
§fn try_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + TryInto<Dst>,
fn try_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + TryInto<Dst>,
§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> Twhere
Self: Distribution<T>,
Source§impl<T> From<T> for T
impl<T> From<T> for T
Source§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
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>
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>where
F: FnOnce(&Self) -> bool,
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>where
F: FnOnce(&Self) -> bool,
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§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> Same for T
impl<T> Same for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.