Enum ExprNode
#[non_exhaustive]pub enum ExprNode {
Show 17 variants
Constant(DynQuantity),
Symbol(SymbolRef),
Neg(ExprId),
Add(ExprId, ExprId),
Sub(ExprId, ExprId),
Mul(ExprId, ExprId),
Div(ExprId, ExprId),
PowI(ExprId, i32),
SpatialCoordinate(usize),
UnaryMath(UnaryMathFunction, ExprId),
Gradient(ExprId),
Divergence(ExprId),
SymmetricPart(ExprId),
IsotropicLift(ExprId),
Trace(ExprId),
NormalComponent(ExprId),
PureOperatorApplication(PureOperatorApplication),
}Description
One node in a topologically ordered residual-expression DAG.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Constant(DynQuantity)
Dimensioned scalar constant.
Symbol(SymbolRef)
Kernel symbol reference.
Neg(ExprId)
Unary negation.
Add(ExprId, ExprId)
Addition.
Sub(ExprId, ExprId)
Subtraction.
Mul(ExprId, ExprId)
Multiplication.
Div(ExprId, ExprId)
Division.
PowI(ExprId, i32)
Integer power.
SpatialCoordinate(usize)
One physical Cartesian coordinate selected by zero-based axis. The owning Relation’s Domain supplies support and validates the axis.
UnaryMath(UnaryMathFunction, ExprId)
Apply one dimension-aware unary mathematical function.
Gradient(ExprId)
Physical-space gradient. The operand’s continuous Domain determines the appended spatial axis.
Divergence(ExprId)
Physical-space divergence, contracting the final spatial axis.
SymmetricPart(ExprId)
Symmetric part of a square Cartesian rank-two tensor.
IsotropicLift(ExprId)
Lift a supported invariant scalar to its isotropic Cartesian tensor.
Trace(ExprId)
Restriction of a parent-domain expression to the boundary Domain on which the owning Relation is scoped.
NormalComponent(ExprId)
Outward-normal component on the boundary Domain on which the owning Relation is scoped.
PureOperatorApplication(PureOperatorApplication)
Apply one expression-local, content-addressed pure definition.
Trait Implementations§
§impl Clone for ExprNode
impl Clone for ExprNode
§impl Debug for ExprNode
impl Debug for ExprNode
§impl PartialEq for ExprNode
impl PartialEq for ExprNode
§fn eq(&self, other: &ExprNode) -> bool
fn eq(&self, other: &ExprNode) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for ExprNode
Auto Trait Implementations§
impl Freeze for ExprNode
impl RefUnwindSafe for ExprNode
impl Send for ExprNode
impl Sync for ExprNode
impl Unpin for ExprNode
impl UnsafeUnpin for ExprNode
impl UnwindSafe for ExprNode
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.