Struct ScalarEllipticCartesianModel
pub struct ScalarEllipticCartesianModel { /* private fields */ }Description
Method-neutral lowered scalar elliptic model on a Cartesian box.
Dimension is carried once by bounds; source and boundary tapes require
exactly that many physical coordinates. Numerical method, mesh density,
quadrature, solver, and backend remain outside this semantic lowering.
Implementations§
§impl ScalarEllipticCartesianModel
impl ScalarEllipticCartesianModel
pub fn domain_id(&self) -> Id<Domain>
pub fn domain_id(&self) -> Id<Domain>
Typed canonical volume Domain identifier.
pub fn field_id(&self) -> Id<Field>
pub fn field_id(&self) -> Id<Field>
Typed canonical scalar Field identifier.
pub fn bounds(&self) -> &[[f64; 2]]
pub fn bounds(&self) -> &[[f64; 2]]
Physical Cartesian bounds in coherent SI coordinates.
pub fn coefficient(&self) -> f64
pub fn coefficient(&self) -> f64
Positive constant constitutive coefficient in coherent SI units.
pub const fn coefficient_expression(&self) -> &ScalarSpatialExpression
pub const fn coefficient_expression(&self) -> &ScalarSpatialExpression
Canonical constitutive-coefficient expression at this revision.
pub const fn source(&self) -> &ScalarSpatialExpression
pub const fn source(&self) -> &ScalarSpatialExpression
Canonical scalar source expression.
pub fn parameter_fields(&self) -> &[Id<Parameter>]
pub fn parameter_fields(&self) -> &[Id<Parameter>]
All canonical Parameters affecting coefficient, source, or boundary data, in deterministic dense differentiation order.
pub fn parameter_values(&self) -> &[f64]
pub fn parameter_values(&self) -> &[f64]
Complete numerical point matching Self::parameter_fields.
Immediately after lowering this is the revision-local Model point.
Self::bind_selected_parameters returns a new model with selected
entries replaced and every unselected entry frozen here.
pub fn bind_selected_parameters(
&self,
selected: &[Id<Parameter>],
values: &[f64],
) -> Result<ScalarEllipticCartesianModel, Diagnostic>
pub fn bind_selected_parameters( &self, selected: &[Id<Parameter>], values: &[f64], ) -> Result<ScalarEllipticCartesianModel, Diagnostic>
Bind an ordered selection of canonical Parameters to one immutable numerical point.
Parameters outside selected retain their values from this lowered
model. The returned model owns the complete resulting point; neither
this model nor the canonical Semantic Model is mutated.
§Errors
Returns EQ0704 for an empty, mismatched, duplicate, foreign, or
non-finite selection, or when the bound elliptic coefficient is not
finite and positive.
pub fn boundary(
&self,
axis: usize,
side: BoundarySide,
) -> Option<&ScalarEllipticCartesianBoundary>
pub fn boundary( &self, axis: usize, side: BoundarySide, ) -> Option<&ScalarEllipticCartesianBoundary>
Boundary condition on one Cartesian axis side.
pub fn coefficient_jvp(
&self,
parameter_tangent: &[f64],
) -> Result<(f64, f64), Diagnostic>
pub fn coefficient_jvp( &self, parameter_tangent: &[f64], ) -> Result<(f64, f64), Diagnostic>
Evaluate the constitutive coefficient and one canonical-Parameter JVP.
§Errors
Preserves lowered-expression shape and finite-value diagnostics.
pub fn source_jvp(
&self,
coordinates: &[f64],
coordinate_tangent: &[f64],
parameter_tangent: &[f64],
) -> Result<(f64, f64), Diagnostic>
pub fn source_jvp( &self, coordinates: &[f64], coordinate_tangent: &[f64], parameter_tangent: &[f64], ) -> Result<(f64, f64), Diagnostic>
Evaluate source meaning and its coordinate/Parameter JVP.
parameter_tangent follows Self::parameter_fields order. This
method is method-neutral and may be consumed by Cartesian or imported
mesh realizations.
§Errors
Preserves lowered-expression shape and finite-value diagnostics.
pub fn essential_boundary_jvp(
&self,
coordinates: &[f64],
coordinate_tangent: &[f64],
parameter_tangent: &[f64],
) -> Result<(f64, f64), Diagnostic>
pub fn essential_boundary_jvp( &self, coordinates: &[f64], coordinate_tangent: &[f64], parameter_tangent: &[f64], ) -> Result<(f64, f64), Diagnostic>
Evaluate compatible essential trace data and its total JVP at a point on the canonical box boundary.
§Errors
Returns a lowering diagnostic for an interior point, nonessential data, incompatible edge/corner traces, shape mismatch, or non-finite data.
Trait Implementations§
§impl Clone for ScalarEllipticCartesianModel
impl Clone for ScalarEllipticCartesianModel
§impl Debug for ScalarEllipticCartesianModel
impl Debug for ScalarEllipticCartesianModel
§impl PartialEq for ScalarEllipticCartesianModel
impl PartialEq for ScalarEllipticCartesianModel
§fn eq(&self, other: &ScalarEllipticCartesianModel) -> bool
fn eq(&self, other: &ScalarEllipticCartesianModel) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for ScalarEllipticCartesianModel
Auto Trait Implementations§
impl Freeze for ScalarEllipticCartesianModel
impl RefUnwindSafe for ScalarEllipticCartesianModel
impl Send for ScalarEllipticCartesianModel
impl Sync for ScalarEllipticCartesianModel
impl Unpin for ScalarEllipticCartesianModel
impl UnsafeUnpin for ScalarEllipticCartesianModel
impl UnwindSafe for ScalarEllipticCartesianModel
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.