Back to Eqiora docs Skip to main content

PortableRealizationGraph

Struct PortableRealizationGraph 

pub struct PortableRealizationGraph { /* private fields */ }
Description

Canonical portable DAG projected from one already resolved Realization.

Its canonical wire preserves every graph family currently projected by this crate. Graph validation proves structural closure and solver compatibility. An equation-aware consumer must additionally compare all claimed Semantic identities and mathematical properties with its accepted lowering before this graph can authorize a run or become evidence. Model, Mesh, and provider payloads remain separate content-addressed dependencies.

Implementations§

§

impl PortableRealizationGraph

pub fn with_harmonic_geometry( self, motion: &P1HarmonicMeshMotionPolicy, current_domains: impl IntoIterator<Item = Id<Domain>>, pullbacks: impl IntoIterator<Item = BackwardEulerRelationStep>, ) -> Result<PortableRealizationGraph, Diagnostic>

Add harmonic coordinate extension and explicit endpoint GCL pullbacks.

current_domains selects current coordinates independently of harmonic or driven membership. Other selected Domains use reference coordinates. pullbacks selects the exact transported Relation/Field pairs and their shared Backward Euler duration. The graph owns their derivative and GCL transformations; no physical-family name selects a numerical action.

This checks graph structure. Equation lowering and mesh binding still authenticate each selected Field, transport law and conforming trace.

§Errors

Returns EQ0807 for absent or duplicate selections, conflicting geometry, inconsistent durations or derivatives, or invalid graph closure.

§

impl PortableRealizationGraph

pub fn represented_physical_fields(&self) -> Vec<RepresentedPhysicalField>

Complete represented physical Field inventory, including eliminated states.

§

impl PortableRealizationGraph

pub fn to_bytes(&self) -> Result<Vec<u8>, Diagnostic>

Encode this resolved Plan graph as deterministic canonical JSON bytes.

The payload is portable: it contains no filesystem path, runtime handle, device ordinal, communicator, credential, or deployment binding.

§Errors

Returns EQ0807 if the graph is invalid, a platform count cannot be represented by the wire, or serialization unexpectedly fails.

pub fn from_bytes(bytes: &[u8]) -> Result<PortableRealizationGraph, Diagnostic>

Decode and revalidate one exact portable Plan graph.

Unknown versions, fields, noncanonical JSON, excessive input, malformed identities, disconnected nodes, and invalid numerical combinations fail closed before a graph is returned.

§Errors

Returns EQ0807 when the bytes are not the exact bounded v5 wire.

pub fn digest(&self) -> Result<[u8; 32], Diagnostic>

Domain-separated SHA-256 identity of the exact canonical graph bytes.

§Errors

Returns EQ0807 if canonical encoding unexpectedly fails.

§

impl PortableRealizationGraph

pub const fn lineage(&self) -> RealizationLineage

Exact Model and Realization lineage.

pub fn domains(&self) -> &[DomainDiscretizationNode]

Canonically ordered Domain discretizations.

pub fn fields(&self) -> &[FieldRepresentationNode]

Canonically ordered Field representations.

pub fn geometry_actions(&self) -> &[GeometryActionNode]

Canonically ordered sealed moving-geometry actions.

pub fn transformations(&self) -> &[TransformationNode]

Canonically ordered numerical transformations.

pub fn systems(&self) -> &[AlgebraicSystemNode]

Connected algebraic systems.

pub fn linear_solves(&self) -> &[LinearSolveNode]

Linear-solver roles.

pub fn nonlinear_solves(&self) -> &[NonlinearSolveNode]

Nonlinear-solver roles.

pub fn placements(&self) -> &[PlacementRequirementNode]

Portable compute requirements without environment-local ordinals.

pub const fn root(&self) -> SolveRoot

Sole connected solve root.

pub fn domain( &self, id: DomainDiscretizationId, ) -> Option<&DomainDiscretizationNode>

Resolve a typed Domain reference.

pub fn field( &self, id: FieldRepresentationId, ) -> Option<&FieldRepresentationNode>

Resolve a typed Field reference.

pub fn geometry_action( &self, id: GeometryActionId, ) -> Option<&GeometryActionNode>

Resolve a typed moving-geometry action reference.

pub fn transformation( &self, id: TransformationId, ) -> Option<&TransformationNode>

Resolve a typed transformation reference.

pub fn system(&self, id: AlgebraicSystemId) -> Option<&AlgebraicSystemNode>

Resolve a typed algebraic-system reference.

pub fn linear_solve(&self, id: LinearSolveId) -> Option<&LinearSolveNode>

Resolve a typed linear-solve reference.

pub fn nonlinear_solve( &self, id: NonlinearSolveId, ) -> Option<&NonlinearSolveNode>

Resolve a typed nonlinear-solve reference.

pub fn placement( &self, id: PlacementRequirementId, ) -> Option<PlacementRequirementNode>

Resolve a typed placement reference.

§

impl PortableRealizationGraph

pub fn spatial_regions( lineage: RealizationLineage, regions: impl IntoIterator<Item = DomainFieldDiscretization>, quotients: impl IntoIterator<Item = ConformingTraceQuotient>, kinematic_step: Option<&BackwardEulerStep>, discretization: Discretization, operator_properties: LinearOperatorProperties, scalar_type: ScalarType, vector_layout: VectorLayoutKind, solver: SolverPlan, nonlinear: Option<NonlinearSolvePlan>, target: Target, schedule: ExecutionSchedule, scaling: SystemScaling, ) -> Result<PortableRealizationGraph, Diagnostic>

Resolve one graph-native spatial realization for exact Field bindings. The equation-aware caller supplies the exact Semantic identities and operator class. This constructor owns graph closure and solver compatibility; provider capability admission remains a separate step. None selects a linear root. An explicit nonlinear policy selects a Newton root and requires a general Jacobian and a compatible linear solver.

§Errors

Returns EQ0807 when the supplied choices cannot form one connected portable solve graph.

Trait Implementations§

§

impl Clone for PortableRealizationGraph

§

fn clone(&self) -> PortableRealizationGraph

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for PortableRealizationGraph

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl PartialEq for PortableRealizationGraph

§

fn eq(&self, other: &PortableRealizationGraph) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl StructuralPartialEq for PortableRealizationGraph

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<Src, Scheme> ApproxFrom<Src, Scheme> for Src
where Scheme: ApproxScheme,

§

type Err = NoError

The error type produced by a failed conversion.
§

fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>

Convert the given value into an approximately equivalent representation.
§

impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Src
where Dst: ApproxFrom<Src, Scheme>, Scheme: ApproxScheme,

§

type Err = <Dst as ApproxFrom<Src, Scheme>>::Err

The error type produced by a failed conversion.
§

fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>

Convert the subject into an approximately equivalent representation.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> ByRef<T> for T

§

fn by_ref(&self) -> &T

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T, Dst> ConvAsUtil<Dst> for T

§

fn approx(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst>,

Approximate the subject with the default scheme.
§

fn approx_by<Scheme>(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst, Scheme>, Scheme: ApproxScheme,

Approximate the subject with a specific scheme.
§

impl<T> ConvUtil for T

§

fn approx_as<Dst>(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst>,

Approximate the subject to a given type with the default scheme.
§

fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst, Scheme>, Scheme: ApproxScheme,

Approximate the subject to a given type with a specific scheme.
§

fn into_as<Dst>(self) -> Dst
where Self: Sized + Into<Dst>,

Convert the subject to a given type.
§

fn try_as<Dst>(self) -> Result<Dst, Self::Err>
where Self: Sized + TryInto<Dst>,

Attempt to convert the subject to a given type.
§

fn value_as<Dst>(self) -> Result<Dst, Self::Err>
where Self: Sized + ValueInto<Dst>,

Attempt a value conversion of the subject to a given type.
§

impl<T> DistributionExt for T
where T: ?Sized,

§

fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> T
where Self: Distribution<T>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<Src> TryFrom<Src> for Src

§

type Err = NoError

The error type produced by a failed conversion.
§

fn try_from(src: Src) -> Result<Src, <Src as TryFrom<Src>>::Err>

Convert the given value into the subject type.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<Src, Dst> TryInto<Dst> for Src
where Dst: TryFrom<Src>,

§

type Err = <Dst as TryFrom<Src>>::Err

The error type produced by a failed conversion.
§

fn try_into(self) -> Result<Dst, <Src as TryInto<Dst>>::Err>

Convert the subject into the destination type.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<Src> ValueFrom<Src> for Src

§

type Err = NoError

The error type produced by a failed conversion.
§

fn value_from(src: Src) -> Result<Src, <Src as ValueFrom<Src>>::Err>

Convert the given value into an exactly equivalent representation.
§

impl<Src, Dst> ValueInto<Dst> for Src
where Dst: ValueFrom<Src>,

§

type Err = <Dst as ValueFrom<Src>>::Err

The error type produced by a failed conversion.
§

fn value_into(self) -> Result<Dst, <Src as ValueInto<Dst>>::Err>

Convert the subject into an exactly equivalent representation.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T, U> Imply<T> for U
where T: ?Sized, U: ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Scalar for T
where T: 'static + Clone + PartialEq + Debug,