Struct RealizationCapabilities
pub struct RealizationCapabilities { /* private fields */ }Description
Capabilities of a concrete lowerer/backend pair.
Implementations§
§impl RealizationCapabilities
impl RealizationCapabilities
pub fn exact(
combinations: impl IntoIterator<Item = RealizationCapability>,
) -> Result<RealizationCapabilities, Diagnostic>
pub fn exact( combinations: impl IntoIterator<Item = RealizationCapability>, ) -> Result<RealizationCapabilities, Diagnostic>
Construct a nonempty set of exact Realization-owned admission tuples.
§Errors
Returns EQ0807 when no exact tuple is supplied.
Represent a concrete backend environment with no executable target.
This is an availability result, not an evidence-backed capability. It exists so target discovery can fail closed at ordinary resolution.
pub fn cartesian_product(
methods: impl IntoIterator<Item = DiscretizationMethod>,
mesh_dimensions: impl IntoIterator<Item = (MeshKind, SpatialDimensionSupport)>,
vector_layouts: impl IntoIterator<Item = VectorLayoutKind>,
solver: SolverCapabilities,
targets: TargetCapabilities,
) -> Result<RealizationCapabilities, Diagnostic>
pub fn cartesian_product( methods: impl IntoIterator<Item = DiscretizationMethod>, mesh_dimensions: impl IntoIterator<Item = (MeshKind, SpatialDimensionSupport)>, vector_layouts: impl IntoIterator<Item = VectorLayoutKind>, solver: SolverCapabilities, targets: TargetCapabilities, ) -> Result<RealizationCapabilities, Diagnostic>
Expand independent axes only when their complete Cartesian product is intentionally implemented.
Prefer Self::exact whenever support differs by method, mesh,
solver, layout, or target. The explicit name prevents a convenience
constructor from silently widening an evidence-backed capability.
§Errors
Returns EQ0807 for an empty semantic axis or duplicate mesh family.
An empty discovered target inventory produces Self::unavailable.
pub const fn combinations(&self) -> &BTreeSet<RealizationCapability>
pub const fn combinations(&self) -> &BTreeSet<RealizationCapability>
Exact Realization-owned admission tuples.
pub fn scalar_elliptic_reference() -> RealizationCapabilities
pub fn scalar_elliptic_reference() -> RealizationCapabilities
Capabilities of the current scalar-elliptic reference realization.
This is deliberately limited to the one-, two-, and three-dimensional end-to-end verification envelope. Lower-level Cartesian topology, geometry, and discrete-space contracts remain runtime-dimensional.
pub fn cell_centered_transport_2d_reference() -> RealizationCapabilities
pub fn cell_centered_transport_2d_reference() -> RealizationCapabilities
Exact execution envelope of the verified 2D cell-centered transport path.
Method-specific time, convection, and diffusion capability remains in
TransientCellCenteredTransportCapabilities; this ordinary envelope
admits only generated Cartesian 2D FVM, replicated f64, reproducible
Jacobi-preconditioned BiCGSTAB, and one host worker.
pub fn isotropic_elasticity_2d_reference() -> RealizationCapabilities
pub fn isotropic_elasticity_2d_reference() -> RealizationCapabilities
Capabilities of the verified 2D isotropic-elasticity reference path.
The envelope is intentionally exact: continuous Q1 on a generated
Cartesian mesh, replicated f64 storage, reference CG, and one host
worker. The semantic lowerer independently requires a spatial-vector
displacement, constant coercive Lamé coefficients, a conservative
scalar load potential, and homogeneous trace on all four sides.
pub fn symmetric_mixed_simplicial_2d_reference() -> RealizationCapabilities
pub fn symmetric_mixed_simplicial_2d_reference() -> RealizationCapabilities
Exact capability of the reference 2D symmetric mixed-simplex path.
The semantic/numerical handoff remains responsible for proving the
exact Field roles, spaces, constraint, and scaling dimensions. This
execution envelope admits only replicated f64, identity-preconditioned
reproducible MINRES for a symmetric-indefinite operator on one host
worker.
Trait Implementations§
§impl Clone for RealizationCapabilities
impl Clone for RealizationCapabilities
§impl Debug for RealizationCapabilities
impl Debug for RealizationCapabilities
§impl PartialEq for RealizationCapabilities
impl PartialEq for RealizationCapabilities
§fn eq(&self, other: &RealizationCapabilities) -> bool
fn eq(&self, other: &RealizationCapabilities) -> bool
self and other values to be equal, and is used by ==.impl Eq for RealizationCapabilities
impl StructuralPartialEq for RealizationCapabilities
Auto Trait Implementations§
impl Freeze for RealizationCapabilities
impl RefUnwindSafe for RealizationCapabilities
impl Send for RealizationCapabilities
impl Sync for RealizationCapabilities
impl Unpin for RealizationCapabilities
impl UnsafeUnpin for RealizationCapabilities
impl UnwindSafe for RealizationCapabilities
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>,
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
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.