eqiora
Model authoring, numerical plans, execution, and results.
View sourceExample: model, plan, and result
Section titled “Example: model, plan, and result”The complete Python example creates
model, plan, result, and x. Continue with those objects:
print(model.field("x") == x)print(model.parameter("rate").value)print(model.render_equations("flow", profile="plain")[0].text)values = result.series(x).values.numpy()print(values[-1])This selects the declared field and parameter by name, displays the equation,
and reads the final dimensionless value (about 0.367879). Result arrays are
read-only; use values.copy() when you need a writable NumPy array.
Module
Section titled “Module”See eqiora.lang.Module.
An Eqiora module built in Python; it becomes immutable once emitted or compiled.
Build the typed predicate left == right.
def equal(left: _ExpressionLike, right: _ExpressionLike) -> Expression: ...not_equal
Section titled “not_equal”Build the typed predicate left != right.
def not_equal(left: _ExpressionLike, right: _ExpressionLike) -> Expression: ...Build the typed predicate left < right.
def less(left: _ExpressionLike, right: _ExpressionLike) -> Expression: ...less_equal
Section titled “less_equal”Build the typed predicate left <= right.
def less_equal(left: _ExpressionLike, right: _ExpressionLike) -> Expression: ...greater
Section titled “greater”Build the typed predicate left > right.
def greater(left: _ExpressionLike, right: _ExpressionLike) -> Expression: ...greater_equal
Section titled “greater_equal”Build the typed predicate left >= right.
def greater_equal(left: _ExpressionLike, right: _ExpressionLike) -> Expression: ...logical_not
Section titled “logical_not”Build the typed predicate not value.
def logical_not(value: _ExpressionLike) -> Expression: ...logical_and
Section titled “logical_and”Build the typed predicate left and right.
def logical_and(left: _ExpressionLike, right: _ExpressionLike) -> Expression: ...logical_or
Section titled “logical_or”Build the typed predicate left or right.
def logical_or(left: _ExpressionLike, right: _ExpressionLike) -> Expression: ...__version__
Section titled “__version__”Installed Eqiora version.
__version__: strImmutable dense one-dimensional CPU float64 or complex128 result buffer.
@finalclass Array: def __getitem__(self, index: int, /) -> float | complex: ... def numpy(self, *, copy: bool | None=None) -> npt.NDArray[np.float64] | npt.NDArray[np.complex128]: ... def __array__(self, dtype: object | None=None, copy: bool | None=None) -> npt.NDArray[Any]: ... def __dlpack_device__(self) -> tuple[int, int]: ... def __dlpack__(self, *, stream: int | None=None, max_version: tuple[int, int] | None=None, dl_device: tuple[int, int] | None=None, copy: bool | None=None) -> object: ... @property def device(self) -> str: ... @property def device_id(self) -> int: ... @property def dtype(self) -> str: ... @property def byte_order(self) -> str: ... @property def shape(self) -> tuple[int]: ... @property def strides(self) -> tuple[int]: ... @property def c_contiguous(self) -> bool: ... @property def aligned(self) -> bool: ... @property def readonly(self) -> bool: ... @property def ownership(self) -> str: ... @property def origin_copy_occurred(self) -> bool: ... def __len__(self) -> int: ...AuthoredFormulation
Section titled “AuthoredFormulation”Read-only view of a Formulation written in source, taken from a fresh compilation.
@finalclass AuthoredFormulation: @property def gauge_field_ids(self) -> list[str] | None: ... @property def implication(self) -> Literal['strong-implies-weak', 'strong-implies-interval-conservation', 'strong-equivalent-finite']: ... @property def assumptions(self) -> list[str]: ... @property def name(self) -> str: ... @property def test_restrictions(self) -> list[tuple[str, str, list[str], list[tuple[int, int]], str | None]]: ... @property def interval(self) -> tuple[str, str, str] | None: ... @property def kind(self) -> str: ... @property def source_identity(self) -> str: ... @property def relation_ids(self) -> list[str]: ... @property def domain_id(self) -> str | None: ... @property def trial_field_ids(self) -> list[str]: ... @property def filename(self) -> str: ... @property def source_range(self) -> tuple[int, int]: ...BoundarySide
Section titled “BoundarySide”Which side, lower or upper, a Cartesian boundary domain lies on.
@finalclass BoundarySide: Lower: ClassVar[BoundarySide] Upper: ClassVar[BoundarySide] def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...CancellationError
Section titled “CancellationError”Raised when an Eqiora operation is cancelled.
class CancellationError(EqioraError): ...CapabilityError
Section titled “CapabilityError”Raised when an adapter lacks a required capability.
class CapabilityError(EqioraError): ...CompatibilityError
Section titled “CompatibilityError”Raised when a versioned or saved value is incompatible with this release.
class CompatibilityError(EqioraError): ...Connection
Section titled “Connection”Immutable declaration of an unnamed conserving connection.
@finalclass Connection: ...ClockDomain
Section titled “ClockDomain”Immutable standalone periodic clock whose period and phase are exact rational seconds.
@finalclass ClockDomain: def __new__(cls, *, period_s: Fraction | int, phase_s: Fraction | int=0) -> Self: ... @property def id(self) -> str: ... @property def period_s(self) -> Fraction: ... @property def phase_s(self) -> Fraction: ...CoordinateInterval
Section titled “CoordinateInterval”Finite lower and upper bounds, in coherent SI units, for one dimensioned coordinate.
The bounds must be strictly increasing. The interval holds only the bounds and their dimension; the support it is attached to determines which coordinate it describes.
@finalclass CoordinateInterval: def __new__(cls, lower: float, upper: float, *, dimension: Dimension) -> Self: ... @property def lower(self) -> float: ... @property def upper(self) -> float: ... @property def dimension(self) -> Dimension: ... def __eq__(self, other: object, /) -> bool: ... def __repr__(self) -> str: ... def __hash__(self) -> int: ...ExecutionSession
Section titled “ExecutionSession”Step-by-step reference execution of a Model, driven by explicit input tables.
Each advance finishes stabilizing the current execution boundary before returning.
Input Ports, Clocks, and outputs can be selected by their source name or by their ULID in the Model.
@finalclass ExecutionSession: def advance(self) -> bool: ... @property def progress(self) -> dict[str, float | int]: ... @property def activation_sequence(self) -> tuple[tuple[str, ...], ...]: ... def advance_ticks(self, count: int) -> int: ... @property def next_tick(self) -> Fraction | None: ... def checkpoint(self) -> ExecutionCheckpoint: ... def across(self, name: str) -> float | None: ... def through(self, name: str) -> float | None: ... def field(self, name: str) -> _TypedValue | None: ... def output(self, name: str, tick_index: int) -> tuple[Fraction, _TypedValue] | None: ...ExecutionCheckpoint
Section titled “ExecutionCheckpoint”Exact continuation of reference or supported finite-time execution.
Adaptive checkpoints retain their original Plan, Run and numerical history; reference execution checkpoints currently remain in memory.
@finalclass ExecutionCheckpoint: def record(self) -> RecordedTimeCheckpoint: ... def to_bytes(self) -> bytes: ... @staticmethod def from_bytes(plan: Plan, data: bytes, /) -> ExecutionCheckpoint: ... def write(self, path: str | os.PathLike[str]) -> None: ... @staticmethod def read(plan: Plan, path: str | os.PathLike[str], /) -> ExecutionCheckpoint: ...ConservingPort
Section titled “ConservingPort”Immutable declaration of a scalar conserving port.
@finalclass ConservingPort: def __new__(cls, name: str, *, domain: PhysicalDomain) -> Self: ... @property def name(self) -> str: ... @property def domain(self) -> PhysicalDomain: ...ConvergenceReason
Section titled “ConvergenceReason”Why a linear solve was considered converged.
@finalclass ConvergenceReason: InitialResidualSatisfied: ClassVar[ConvergenceReason] ResidualToleranceSatisfied: ClassVar[ConvergenceReason] def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...DerivativeImplementation
Section titled “DerivativeImplementation”Which implementation supplied the derivative for an evaluation.
@finalclass DerivativeImplementation: AnalyticAssembled: ClassVar[DerivativeImplementation] OperatorIr: ClassVar[DerivativeImplementation] def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...Diagnostic
Section titled “Diagnostic”Immutable compiler or runtime diagnostic, carrying every field of the underlying Rust diagnostic.
@finalclass Diagnostic: @property def source(self) -> str: ... @property def code(self) -> str: ... @property def severity(self) -> str: ... @property def message(self) -> str: ... @property def graph_path(self) -> list[str] | None: ... @property def source_span(self) -> tuple[str, int, int] | None: ... @property def suggestion(self) -> str | None: ...DifferentiableEvaluation
Section titled “DifferentiableEvaluation”Converged evaluation at one parameter point.
@finalclass DifferentiableEvaluation: @property def point(self) -> tuple[npt.NDArray[np.float64 | np.complex128], ...]: ... def primal(self) -> DifferentiablePrimal: ... def jvp(self, tangent: Sequence[float | complex | Array | npt.NDArray[np.float64 | np.complex128] | _DLPackProducer]) -> DifferentiableJvp: ... def vjp(self, cotangent: Sequence[float | complex | Array | npt.NDArray[np.float64 | np.complex128] | _DLPackProducer]) -> DifferentiableVjp: ... @property def accepted_unknowns(self) -> Array: ... def residual_jvp(self, unknown: Array | _Float64Array | _DLPackProducer, parameter: Array | _Float64Array | _DLPackProducer) -> Array: ... def residual_vjp(self, cotangent: Array | _Float64Array | _DLPackProducer) -> tuple[Array, Array]: ... def output_partial_jvp(self, unknown: Array | _Float64Array | _DLPackProducer, parameter: Array | _Float64Array | _DLPackProducer) -> Array: ... def output_partial_vjp(self, cotangent: Array | _Float64Array | _DLPackProducer) -> tuple[Array, Array]: ...DifferentiableJvp
Section titled “DifferentiableJvp”Ordered output leaves and their shape-preserving forward tangent leaves.
@finalclass DifferentiableJvp: @property def output(self) -> tuple[npt.NDArray[np.float64 | np.complex128], ...]: ... @property def tangent(self) -> tuple[npt.NDArray[np.float64 | np.complex128], ...]: ... @property def evidence(self) -> DifferentiationEvidence: ...DifferentiablePrimal
Section titled “DifferentiablePrimal”Ordered typed output leaves from a primal evaluation.
@finalclass DifferentiablePrimal: @property def output(self) -> tuple[npt.NDArray[np.float64 | np.complex128], ...]: ... @property def evidence(self) -> DifferentiationEvidence: ...DifferentiableProgram
Section titled “DifferentiableProgram”Differentiable map between ordered typed input and output products.
@finalclass DifferentiableProgram: @property def model_digest(self) -> str: ... @property def plan_identity(self) -> str: ... @property def inputs(self) -> tuple[DifferentiableValueSignature, ...]: ... @property def outputs(self) -> tuple[DifferentiableValueSignature, ...]: ... @property def dtype(self) -> str: ... @property def device(self) -> str: ... def evaluate(self, parameters: Sequence[float | complex | Array | npt.NDArray[np.float64 | np.complex128] | _DLPackProducer]) -> DifferentiableEvaluation: ... def map(self, mapped: Sequence[float | complex | Array | npt.NDArray[np.float64 | np.complex128] | _DLPackProducer], *, point_shape: Sequence[int], shared_inputs: Sequence[ParameterRef] | None=None, shared: Sequence[float | complex | Array | npt.NDArray[np.float64 | np.complex128] | _DLPackProducer] | None=None, retained_bytes_limit: int=67108864) -> EvaluationMapPlan: ... def primal(self) -> DifferentiablePrimal: ... def jvp(self, tangent: Sequence[float | complex | Array | npt.NDArray[np.float64 | np.complex128] | _DLPackProducer]) -> DifferentiableJvp: ... def vjp(self, cotangent: Sequence[float | complex | Array | npt.NDArray[np.float64 | np.complex128] | _DLPackProducer]) -> DifferentiableVjp: ...DifferentiableVjp
Section titled “DifferentiableVjp”Ordered output leaves and the shape-preserving input cotangent leaves.
@finalclass DifferentiableVjp: @property def output(self) -> tuple[npt.NDArray[np.float64 | np.complex128], ...]: ... @property def input_cotangent(self) -> tuple[npt.NDArray[np.float64 | np.complex128], ...]: ... @property def evidence(self) -> DifferentiationEvidence: ...DifferentiableValueSignature
Section titled “DifferentiableValueSignature”Exact native Model/type/support identity of one selected numerical leaf.
@finalclass DifferentiableValueSignature: @property def id(self) -> str: ... @property def model_digest(self) -> str: ... @property def value_type(self) -> ValueType: ... @property def shape(self) -> tuple[int, ...]: ... @property def mesh_digest(self) -> str | None: ... @property def space(self) -> str | None: ... @property def coefficient_entities(self) -> tuple[tuple[int, int], ...]: ... def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...CompleteEvaluationMap
Section titled “CompleteEvaluationMap”Completed batch retaining ordinary accepted evaluations or time Results.
@finalclass CompleteEvaluationMap: def record(self) -> EvaluationCollection: ... def __len__(self) -> int: ... def __getitem__(self, index: int, /) -> DifferentiableEvaluation | Result: ... @property def plan(self) -> EvaluationMapPlan: ... @property def statuses(self) -> list[str]: ... def member(self, index: int) -> DifferentiableEvaluation | Result: ... def primal(self) -> tuple[npt.NDArray[np.float64 | np.complex128], ...]: ... def jvp(self, mapped: Sequence[float | complex | Array | npt.NDArray[np.float64 | np.complex128] | _DLPackProducer], *, shared: Sequence[float | complex | Array | npt.NDArray[np.float64 | np.complex128] | _DLPackProducer] | None=None, seed_shape: Sequence[int] | None=None, point_axes: Sequence[int] | None=None, numerical_bytes_limit: int=67108864) -> EvaluationMapJvp: ... def vjp(self, cotangents: Sequence[float | complex | Array | npt.NDArray[np.float64 | np.complex128] | _DLPackProducer], *, seed_shape: Sequence[int] | None=None, point_axes: Sequence[int] | None=None, numerical_bytes_limit: int=67108864) -> EvaluationMapVjp: ...EvaluationCollection
Section titled “EvaluationCollection”Ordered groups of exact recorded requests and original outcomes.
@finalclass EvaluationCollection: @property def identity(self) -> str: ... @property def complete(self) -> bool: ... def __len__(self) -> int: ... def __getitem__(self, index: int, /) -> EvaluationCollectionGroup: ... @staticmethod def combine(collections: Sequence[EvaluationCollection]) -> EvaluationCollection: ... def with_estimator(self, group: int, estimator: MomentEstimator) -> EvaluationCollection: ... def to_bytes(self) -> bytes: ... @staticmethod def from_bytes(data: bytes) -> EvaluationCollection: ... def write(self, path: str | os.PathLike[str]) -> None: ... @staticmethod def read(path: str | os.PathLike[str]) -> EvaluationCollection: ...EvaluationCollectionGroup
Section titled “EvaluationCollectionGroup”One exact ordered request and execution; different Plans stay in separate groups.
@finalclass EvaluationCollectionGroup: @property def estimators(self) -> list[RecordedMomentEstimator]: ... @property def execution_id(self) -> str: ... @property def request_identity(self) -> str: ... @property def complete(self) -> bool: ... @property def plan(self) -> Plan: ... @property def program_bytes(self) -> bytes | None: ... @property def inputs(self) -> tuple[DifferentiableValueSignature, ...] | None: ... @property def outputs(self) -> tuple[DifferentiableValueSignature, ...] | None: ... @property def shared_input_ids(self) -> list[str] | None: ... def __len__(self) -> int: ... def __getitem__(self, index: int, /) -> RecordedEvaluation: ...RecordedMomentEstimator
Section titled “RecordedMomentEstimator”Saved typed statistic, exact group membership and declared estimator interpretation.
@finalclass RecordedMomentEstimator: @property def identity(self) -> str: ... @property def model_digest(self) -> str: ... @property def occurrence_ids(self) -> list[str]: ... @property def result_identities(self) -> list[str]: ... @property def weights(self) -> list[float]: ... @property def reduction(self) -> str: ... @property def value(self) -> float: ... @property def value_type(self) -> ValueType: ... @property def output_indices(self) -> list[int] | None: ... @property def time_s(self) -> float | None: ... @property def observables(self) -> list[ObservableRef] | None: ... @property def gradient_estimator(self) -> str: ... @property def gradient_entities(self) -> dict[str, str]: ...RecordedEvaluation
Section titled “RecordedEvaluation”One immutable occurrence with typed accepted output or original terminal status.
@finalclass RecordedEvaluation: @property def occurrence_id(self) -> str: ... @property def status(self) -> str: ... @property def reference(self) -> str | None: ... @property def result(self) -> DifferentiablePrimal | Result | None: ... @property def point(self) -> tuple[npt.NDArray[np.float64 | np.complex128], ...] | None: ... @property def time_request_bytes(self) -> bytes | None: ... @property def sampling(self) -> SamplingIdentity | None: ... @property def parameter_sample_bytes(self) -> bytes | None: ... @property def diagnostics(self) -> list[Diagnostic]: ... @property def input_checkpoint(self) -> RecordedTimeCheckpoint | None: ... @property def checkpoint(self) -> RecordedTimeCheckpoint | None: ...RecordedTimeCheckpoint
Section titled “RecordedTimeCheckpoint”Immutable checkpoint content; restore explicitly admits numerical continuation.
@finalclass RecordedTimeCheckpoint: @property def identity(self) -> str: ... @property def request_identity(self) -> str: ... def to_bytes(self) -> bytes: ... @staticmethod def from_bytes(plan: Plan, data: bytes, /) -> RecordedTimeCheckpoint: ... def restore(self) -> ExecutionCheckpoint: ...EvaluationMapPlan
Section titled “EvaluationMapPlan”Ordered independent parameter evaluations or time Runs, admitted before execution.
@finalclass EvaluationMapPlan: @staticmethod def from_time(plan: Plan, states: Sequence[State], /, *, until_s: float, output_times_s: Sequence[float], master_seed: bytes | None=None, sampling: Sequence[SamplingIdentity] | None=None, checkpoints: Sequence[ExecutionCheckpoint | None] | None=None, chunk_size: int=1, workers: int=1, storage_bytes_limit: int=67108864, member_bytes_limit: int=8388608) -> EvaluationMapPlan: ... @property def time_plan(self) -> Plan | None: ... def __len__(self) -> int: ... def __getitem__(self, index: int, /) -> tuple[npt.NDArray[np.float64 | np.complex128], ...] | State: ... @property def program(self) -> DifferentiableProgram: ... @property def point_shape(self) -> tuple[int, ...]: ... @property def shared_input_ids(self) -> list[str]: ... @property def mapped_input_ids(self) -> list[str]: ... @property def estimated_storage_bytes(self) -> int: ... @property def points(self) -> tuple[npt.NDArray[np.float64 | np.complex128], ...]: ... def occurrence_coordinates(self, index: int) -> tuple[int, ...]: ... def execute(self, *, cancellation: EvaluationMapCancellation | None=None) -> CompleteEvaluationMap | EvaluationMapTerminalReport: ... def execute_recorded(self, *, cancellation: EvaluationMapCancellation | None=None) -> EvaluationCollection: ...EvaluationMapTerminalReport
Section titled “EvaluationMapTerminalReport”Members evaluated before a batch failed or was cancelled; it never holds a complete primal or derivative product.
@finalclass EvaluationMapTerminalReport: def record(self) -> EvaluationCollection: ... def __len__(self) -> int: ... def __getitem__(self, index: int, /) -> DifferentiableEvaluation | Result | None: ... @property def plan(self) -> EvaluationMapPlan: ... @property def stopped_index(self) -> int: ... @property def cancelled(self) -> bool: ... @property def diagnostics(self) -> list[Diagnostic]: ... @property def statuses(self) -> list[str]: ... def member(self, index: int) -> DifferentiableEvaluation | Result | None: ... def checkpoint(self, index: int) -> ExecutionCheckpoint | None: ...EvaluationMapCancellation
Section titled “EvaluationMapCancellation”Cancellation token, checked between batch members.
@finalclass EvaluationMapCancellation: def __init__(self) -> None: ... def cancel(self) -> None: ... @property def requested(self) -> bool: ...EvaluationMapJvp
Section titled “EvaluationMapJvp”JVPs with ordered immutable output leaves; shape describes point and seed axes only.
@finalclass EvaluationMapJvp: @property def plan(self) -> EvaluationMapPlan: ... @property def seed_shape(self) -> tuple[int, ...]: ... @property def point_axes(self) -> tuple[int, ...]: ... @property def shape(self) -> tuple[int, ...]: ... @property def output(self) -> tuple[npt.NDArray[np.float64 | np.complex128], ...]: ... @property def tangent(self) -> tuple[npt.NDArray[np.float64 | np.complex128], ...]: ... def member(self, index: int) -> DifferentiableJvp: ...EvaluationMapVjp
Section titled “EvaluationMapVjp”VJPs with ordered immutable input leaves; shared covectors sum over point axes.
Shapes describe collection axes only; each leaf retains its intrinsic shape.
@finalclass EvaluationMapVjp: @property def plan(self) -> EvaluationMapPlan: ... @property def seed_shape(self) -> tuple[int, ...]: ... @property def point_axes(self) -> tuple[int, ...]: ... @property def shared_shape(self) -> tuple[int, ...]: ... @property def mapped_shape(self) -> tuple[int, ...]: ... @property def shared_input_ids(self) -> list[str]: ... @property def mapped_input_ids(self) -> list[str]: ... @property def shared_cotangents(self) -> tuple[npt.NDArray[np.float64 | np.complex128], ...]: ... @property def mapped_cotangents(self) -> tuple[npt.NDArray[np.float64 | np.complex128], ...]: ... def member(self, index: int) -> DifferentiableVjp: ...DifferentiationEvidence
Section titled “DifferentiationEvidence”Provenance of one differentiation: model, plan, solve summaries, and residual.
@finalclass DifferentiationEvidence: @property def model_digest(self) -> str: ... @property def plan_identity(self) -> str: ... @property def input_ids(self) -> list[str]: ... @property def output_ids(self) -> list[str]: ... @property def mode(self) -> DifferentiationMode: ... @property def implementation(self) -> DerivativeImplementation: ... @property def linearization_state(self) -> LinearizationState: ... @property def state_system_fingerprint(self) -> str: ... @property def primal_residual_norm(self) -> float: ... @property def residual_tolerance(self) -> float: ... @property def primal_solve(self) -> LinearSolveSummary | NonlinearSolveSummary: ... @property def initial_state_identity(self) -> str | None: ... @property def derivative_solve(self) -> LinearSolveSummary | None: ...DifferentiationMode
Section titled “DifferentiationMode”Kind of differentiation: primal, JVP, or VJP.
@finalclass DifferentiationMode: Primal: ClassVar[DifferentiationMode] Jvp: ClassVar[DifferentiationMode] Vjp: ClassVar[DifferentiationMode] def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...Dimension
Section titled “Dimension”SI base-dimension exponents in M, L, T, I, Θ, N, J order.
@finalclass Dimension: def __new__(cls, *, mass: int | Fraction=0, length: int | Fraction=0, time: int | Fraction=0, current: int | Fraction=0, temperature: int | Fraction=0, amount: int | Fraction=0, luminous_intensity: int | Fraction=0) -> Self: ... @property def exponents(self) -> tuple[Fraction, Fraction, Fraction, Fraction, Fraction, Fraction, Fraction]: ... def __eq__(self, other: object, /) -> bool: ... def __ne__(self, other: object, /) -> bool: ...ValueType
Section titled “ValueType”Type of a value: scalar domain, dimension, shape, and spatial frame.
@finalclass ValueType: def to_eqi(self) -> str: ... def render(self, profile: Literal['latex', 'mathml', 'unicode', 'plain', 'speech']='latex') -> MathRendering: ... @staticmethod def integer() -> ValueType: ... @staticmethod def boolean() -> ValueType: ... @staticmethod def real(dimension: Dimension | None=None) -> ValueType: ... @staticmethod def complex(dimension: Dimension | None=None) -> ValueType: ... @staticmethod def coordinates(scalar: ValueType, space: FiniteSpace, *, dual: bool=False) -> ValueType: ... @staticmethod def linear_map(scalar: ValueType, source: FiniteSpace, target: FiniteSpace, *, source_dual: bool=False, target_dual: bool=False) -> ValueType: ... @staticmethod def counts(space: FiniteSpace) -> ValueType: ... @staticmethod def index(set: IndexSet) -> ValueType: ... @staticmethod def vector(scalar: ValueType, extent: int) -> ValueType: ... @staticmethod def tensor(scalar: ValueType, *extents: int) -> ValueType: ... @staticmethod def array(element: ValueType, extent: int) -> ValueType: ... @property def scalar_domain(self) -> Literal['real', 'complex', 'integer', 'boolean', 'enum']: ... @property def dimension(self) -> Dimension: ... @property def shape(self) -> list[int]: ... @property def array_rank(self) -> int: ... @property def frame(self) -> Literal['invariant', 'spatial_cartesian']: ... def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...Enum declaration with a fixed set of members. A replayed enum may have no name.
@finalclass Enum: def __new__(cls, name: str, *, members: Sequence[str]) -> Self: ... @property def name(self) -> str | None: ... @property def id(self) -> str: ... @property def members(self) -> tuple[str, ...]: ... @property def value_type(self) -> ValueType: ... def member(self, name: str) -> EnumValue: ...EnumValue
Section titled “EnumValue”Enum member. It does not convert to a number or a Boolean.
@finalclass EnumValue: @property def value_type(self) -> ValueType: ... @property def enum_id(self) -> str: ... def __bool__(self) -> bool: ...FiniteSpace
Section titled “FiniteSpace”Named finite basis with ordered labels. It is unrelated to finite-element spaces.
@finalclass FiniteSpace: def __new__(cls, name: str, *, labels: list[str] | tuple[str, ...]) -> Self: ... @staticmethod def product(name: str, left: FiniteSpace, right: FiniteSpace) -> FiniteSpace: ... @property def factors(self) -> tuple[FiniteSpace, FiniteSpace] | None: ... @property def name(self) -> str: ... @property def id(self) -> str: ... @property def labels(self) -> tuple[str, ...] | None: ...IndexSet
Section titled “IndexSet”Named, zero-based index set with a fixed positive size.
@finalclass IndexSet: def __new__(cls, name: str, *, extent: int) -> Self: ... @property def name(self) -> str: ... @property def id(self) -> str: ... @property def extent(self) -> int: ...DomainRef
Section titled “DomainRef”Domain selected from an immutable Model.
@finalclass DomainRef: @property def model_digest(self) -> str: ... @property def id(self) -> str: ... def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...Domain
Section titled “Domain”Cartesian box, or one of its oriented boundaries, used while building a Model draft.
@finalclass Domain: @staticmethod def box(name: str, *bounds: tuple[float, float]) -> Domain: ... def boundary(self, name: str, *, axis: int, side: BoundarySide) -> Domain: ... @property def name(self) -> str: ... @property def bounds(self) -> list[tuple[float, float]] | None: ... @property def parent(self) -> Domain | None: ... @property def axis(self) -> int | None: ... @property def side(self) -> BoundarySide | None: ... def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...EqioraError
Section titled “EqioraError”Base class for Eqiora errors; diagnostics explains what was rejected.
class EqioraError(Exception): category: str diagnostics: tuple[Diagnostic, ...]ExecutionError
Section titled “ExecutionError”Failure during execution.
class ExecutionError(EqioraError): ...Expression
Section titled “Expression”Symbolic expression. Its shape and support are inferred when it is built.
@finalclass Expression: def __getitem__(self, index: int | slice, /) -> Expression: ... def __neg__(self) -> Expression: ... def __add__(self, right: _ExpressionLike, /) -> Expression: ... def __radd__(self, left: _ExpressionLike, /) -> Expression: ... def __sub__(self, right: _ExpressionLike, /) -> Expression: ... def __rsub__(self, left: _ExpressionLike, /) -> Expression: ... def __mul__(self, right: _ExpressionLike, /) -> Expression: ... def __rmul__(self, left: _ExpressionLike, /) -> Expression: ... def __truediv__(self, right: _ExpressionLike, /) -> Expression: ... def __rtruediv__(self, left: _ExpressionLike, /) -> Expression: ... def __bool__(self) -> bool: ...Immutable typed field declaration.
@finalclass Field: def __new__(cls, name: str, *, domain: Domain | None=None, role: FieldRole, value_type: ValueType | None=None, spatial_regularity: SpatialRegularity=SpatialRegularity.Unspecified) -> Self: ... @property def spatial_regularity(self) -> SpatialRegularity: ... @property def name(self) -> str: ... @property def dimension(self) -> Dimension: ... @property def role(self) -> FieldRole: ... @property def value_type(self) -> ValueType: ... @property def domain(self) -> Domain | None: ... def __getitem__(self, index: int | slice, /) -> Expression: ... def __neg__(self) -> Expression: ... def __add__(self, right: _ExpressionLike, /) -> Expression: ... def __radd__(self, left: _ExpressionLike, /) -> Expression: ... def __sub__(self, right: _ExpressionLike, /) -> Expression: ... def __rsub__(self, left: _ExpressionLike, /) -> Expression: ... def __mul__(self, right: _ExpressionLike, /) -> Expression: ... def __rmul__(self, left: _ExpressionLike, /) -> Expression: ... def __truediv__(self, right: _ExpressionLike, /) -> Expression: ... def __rtruediv__(self, left: _ExpressionLike, /) -> Expression: ... def __bool__(self) -> bool: ...FieldOutput
Section titled “FieldOutput”Computed coefficients of one Model Field on one Mesh.
@finalclass FieldOutput: @property def field(self) -> FieldRef: ... @property def mesh(self) -> meshing.Mesh: ... @property def dimension(self) -> tuple[Fraction, Fraction, Fraction, Fraction, Fraction, Fraction, Fraction]: ... @property def coefficient_dimension(self) -> tuple[Fraction, Fraction, Fraction, Fraction, Fraction, Fraction, Fraction]: ... @property def value_shape(self) -> tuple[int, ...]: ... @property def space(self) -> str: ... @property def associations(self) -> tuple[str, ...]: ... def values(self, association: str, /) -> Array: ... def coefficient_count(self, association: str, /) -> int: ... def logical_shape(self, association: str, /) -> tuple[int, ...]: ...FieldRef
Section titled “FieldRef”Field selected from an immutable model.
@finalclass FieldRef: @property def model_digest(self) -> str: ... @property def id(self) -> str: ... def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...FormulationView
Section titled “FormulationView”Mathematical formulation chosen when the Model was resolved into a Plan.
@finalclass FormulationView: @property def requested(self) -> FormulationSelectionMode: ... @property def effective(self) -> FormulationKind: ... @property def boundary_treatment(self) -> str: ... @property def rule_ids(self) -> list[str]: ... @property def selection_reason_codes(self) -> list[str]: ... @property def requested_source_identity(self) -> str | None: ... @property def source_relation_id(self) -> str | None: ... @property def state_coordinates(self) -> tuple[tuple[FieldRef, int, int, bool], ...]: ... def __repr__(self) -> str: ...FormulationKind
Section titled “FormulationKind”Formulation families that a resolved Plan can use.
FirstOrderEvolution is the first-order form produced by automatic time normalization.
@finalclass FormulationKind: FiniteHermitianPencil: ClassVar[FormulationKind] FirstOrderEvolution: ClassVar[FormulationKind] HarmonicResponse: ClassVar[FormulationKind] PrimalGalerkin: ClassVar[FormulationKind] MixedGalerkin: ClassVar[FormulationKind] IntegralConservative: ClassVar[FormulationKind] def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...FormulationSelectionMode
Section titled “FormulationSelectionMode”Whether a Formulation was selected automatically or supplied explicitly.
@finalclass FormulationSelectionMode: Automatic: ClassVar[FormulationSelectionMode] Exact: ClassVar[FormulationSelectionMode] Authored: ClassVar[FormulationSelectionMode] def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...InitialField
Section titled “InitialField”Initial coefficients for one Field, in coherent SI units.
@finalclass InitialField: def __new__(cls, field: FieldRef, /, *, vertex_values: object | None=None, cell_values: object | None=None, value: object | None=None) -> InitialField: ... @property def field(self) -> FieldRef: ...InternalError
Section titled “InternalError”Unexpected internal failure; implementation details are not exposed.
class InternalError(EqioraError): ...LinearSolveSummary
Section titled “LinearSolveSummary”Linear-solve convergence report.
@finalclass LinearSolveSummary: @property def backend(self) -> str: ... @property def adapter(self) -> str: ... @property def verification_adapter(self) -> str: ... @property def orientation(self) -> str: ... @property def algorithm(self) -> str: ... @property def preconditioner(self) -> str: ... @property def reduction(self) -> str: ... @property def relative_tolerance(self) -> float: ... @property def absolute_tolerance(self) -> float: ... @property def maximum_iterations(self) -> int: ... @property def reason(self) -> ConvergenceReason: ... @property def completed_iterations(self) -> int: ... @property def initial_residual_norm(self) -> float: ... @property def reported_residual_norm(self) -> float: ... @property def true_residual_norm(self) -> float: ... @property def residual_target(self) -> float: ...NonlinearSolveSummary
Section titled “NonlinearSolveSummary”Convergence report for a Newton solve, measured on the original residual.
@finalclass NonlinearSolveSummary: @property def completed_iterations(self) -> int: ... @property def initial_residual_norm(self) -> float: ... @property def true_residual_norm(self) -> float: ... @property def residual_target(self) -> float: ... @property def linear_solves(self) -> tuple[LinearSolveSummary, ...] | None: ...LinearizationState
Section titled “LinearizationState”Whether the linearization was computed afresh or reused.
@finalclass LinearizationState: Established: ClassVar[LinearizationState] Reused: ClassVar[LinearizationState] def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...MathReference
Section titled “MathReference”Model declarations and operators that part of a rendering refers to; the same for every profile.
@finalclass MathReference: def __repr__(self) -> str: ... @property def graph_id(self) -> str | None: ... @property def role(self) -> str | None: ... @property def declarations(self) -> tuple[str, ...]: ... @property def operator(self) -> str | None: ...MathRendering
Section titled “MathRendering”Rendered equation or type, with plain-text and spoken alternatives and references back to the Model.
If used_fallback is true, text is plain text rather than rich markup.
@finalclass MathRendering: def __repr__(self) -> str: ... @property def profile(self) -> str: ... @property def text(self) -> str: ... @property def plain(self) -> str: ... @property def speech(self) -> str: ... @property def used_fallback(self) -> bool: ... @property def references(self) -> tuple[MathReference, ...]: ...Compiled model with all references resolved. A Model is immutable; commit returns a new one.
@finalclass Model: @staticmethod def from_bytes(data: bytes) -> Model: ... @staticmethod def read(path: str | PathLike[str]) -> Model: ... def to_bytes(self) -> bytes: ... def write(self, path: str | PathLike[str]) -> None: ... def preview_value_edit(self, target: str, value: _TypedValue) -> ValueEdit: ... def commit(self, edit: ValueEdit) -> Model: ... def execution_session(self, *, end_time_s: float, max_step_s: float, inputs: dict[str, tuple[str, list[_TypedValue] | tuple[_TypedValue, ...]]]) -> ExecutionSession: ... def resume_execution(self, checkpoint: ExecutionCheckpoint) -> ExecutionSession: ... def enum(self, selection: str) -> Enum: ... def parameter(self, selection: str) -> ParameterRef: ... def field(self, selection: str) -> FieldRef: ... def activation(self, selection: str) -> ActivationRef: ... def observable(self, selection: str) -> ObservableRef: ... def constraint(self, selection: str, ordinal: int) -> ConstraintRef: ... def domain(self, selection: str) -> DomainRef: ... def notation_labels(self, profile: Literal['latex', 'mathml', 'unicode', 'plain', 'speech']='latex', *, identities: Sequence[str] | None=None) -> tuple[QuantityLabel, ...]: ... def render_equations(self, relation: str, profile: Literal['latex', 'mathml', 'unicode', 'plain', 'speech']='latex') -> tuple[MathRendering, ...]: ... def render_formulations(self, profile: Literal['latex', 'mathml', 'unicode', 'plain', 'speech']='latex') -> tuple[MathRendering, ...]: ... def structurally_equivalent(self, other: Model) -> bool: ... @property def digest(self) -> str: ... @property def package_compilation_digest(self) -> str | None: ... @property def property_bindings(self) -> tuple[PropertyBinding, ...]: ... @property def authored_formulations(self) -> tuple[AuthoredFormulation, ...]: ... @property def structural_fingerprint(self) -> StructuralSemanticFingerprint: ... @property def revision(self) -> Revision: ... @property def model_id(self) -> str: ... @property def field_ids(self) -> list[str]: ... @property def parameter_ids(self) -> list[str]: ... @property def domain_ids(self) -> list[str]: ... def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...MomentEstimator
Section titled “MomentEstimator”Typed statistic over the complete supplied collection of accepted time Results.
Every member must use the same exact Plan and retain the requested time.
Values use coherent SI units; variance squares the input units and covariance
multiplies them. No interpolation or failed-member filtering occurs.
assume_iid=True is the caller’s IID and finite-moment assumption. It also
requires equal positive weights and distinct uncoupled identities from one
initial State, horizon and seed/channel. Standard error estimates uncertainty
of an IID mean; it is not a confidence interval or a discretization-error bound.
This operation confers no trajectory derivatives.
@finalclass MomentEstimator: @staticmethod def from_time_results(results: Sequence[Result], outputs: Sequence[ObservableRef], /, *, time_s: float, moment: Literal['mean', 'variance', 'covariance', 'sum']='mean', assume_iid: bool=False, weights: Sequence[float] | None=None) -> MomentEstimator: ... @property def value(self) -> _TypedValue: ... @property def value_type(self) -> ValueType: ... def standard_error(self) -> _TypedValue: ... @property def time_s(self) -> float: ... @property def weights(self) -> list[float]: ... @property def model_digest(self) -> str: ... @property def observables(self) -> list[ObservableRef]: ... @property def result_identities(self) -> list[str]: ... @property def sampling_identities(self) -> list[SamplingIdentity | None]: ... @property def reduction(self) -> Literal['sum', 'empirical-mean', 'empirical-variance', 'empirical-covariance', 'iid-mean', 'iid-variance', 'iid-covariance']: ...PackageConformancePackage
Section titled “PackageConformancePackage”Identity fields for one package in a conformance report.
class PackageConformancePackage(NamedTuple): name: str version: str semantic_digest: str source_digest: strPackageConformanceReport
Section titled “PackageConformanceReport”Conformance report for a locked package and its dependencies.
class PackageConformanceReport(NamedTuple): profile: str eqiora_version: str compiler: str compiler_version: str semantic_canonicalization_version: int source_bundle_version: int resolution_version: int root_package: PackageConformancePackage packages: tuple[PackageConformancePackage, ...] entry_model: str resolution_digest: str package_compilation_digest: str model_id: str model_revision: int model_digest: str deterministic_replay_agreement: boolParameter
Section titled “Parameter”Typed parameter declaration with its value.
A Parameter is uniform in space; use a Field for values that vary. A nonzero
spatial vector or tensor value needs a frame Domain registered in the Model.
@finalclass Parameter: def __new__(cls, name: str, *, value: _TypedValue, value_type: ValueType | None=None, frame: Domain | None=None) -> Self: ... @property def name(self) -> str: ... @property def dimension(self) -> Dimension: ... @property def value(self) -> _TypedValue: ... @property def value_type(self) -> ValueType: ... def __getitem__(self, index: int | slice, /) -> Expression: ... def __neg__(self) -> Expression: ... def __add__(self, right: _ExpressionLike, /) -> Expression: ... def __radd__(self, left: _ExpressionLike, /) -> Expression: ... def __sub__(self, right: _ExpressionLike, /) -> Expression: ... def __rsub__(self, left: _ExpressionLike, /) -> Expression: ... def __mul__(self, right: _ExpressionLike, /) -> Expression: ... def __rmul__(self, left: _ExpressionLike, /) -> Expression: ... def __truediv__(self, right: _ExpressionLike, /) -> Expression: ... def __rtruediv__(self, left: _ExpressionLike, /) -> Expression: ... def __bool__(self) -> bool: ...Observable
Section titled “Observable”Output derived from the solution; it is not an unknown of the solve.
@finalclass Observable: def __new__(cls, name: str, *, value_type: ValueType, expression: _ExpressionLike) -> Self: ... @property def name(self) -> str: ... @property def value_type(self) -> ValueType: ... @property def expression(self) -> Expression: ... def __neg__(self) -> Expression: ... def __bool__(self) -> bool: ... def __add__(self, other: _ExpressionLike, /) -> Expression: ... def __radd__(self, other: _ExpressionLike, /) -> Expression: ... def __sub__(self, other: _ExpressionLike, /) -> Expression: ... def __rsub__(self, other: _ExpressionLike, /) -> Expression: ... def __mul__(self, other: _ExpressionLike, /) -> Expression: ... def __rmul__(self, other: _ExpressionLike, /) -> Expression: ... def __truediv__(self, other: _ExpressionLike, /) -> Expression: ... def __rtruediv__(self, other: _ExpressionLike, /) -> Expression: ...ObservableRef
Section titled “ObservableRef”Observable selected from a Model.
@finalclass ObservableRef: @property def model_digest(self) -> str: ... @property def id(self) -> str: ... def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...ConstraintRef
Section titled “ConstraintRef”One inequality or complementarity condition in a Model.
@finalclass ConstraintRef: @property def model_digest(self) -> str: ... @property def relation_id(self) -> str: ... @property def ordinal(self) -> int: ... @property def kind(self) -> Literal['inequality', 'complementarity']: ... def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...ConstraintMeasurement
Section titled “ConstraintMeasurement”Both sides of a constraint evaluated on the result, with their units and whether the constraint is active.
@finalclass ConstraintMeasurement: @property def reference(self) -> ConstraintRef: ... @property def activity(self) -> Literal['active', 'inactive', 'biactive', 'inequality']: ... @property def left_value(self) -> float: ... @property def right_value(self) -> float: ... @property def left_dimension(self) -> Dimension: ... @property def right_dimension(self) -> Dimension: ... @property def left_tolerance(self) -> float: ... @property def right_tolerance(self) -> float | None: ...ActivationRef
Section titled “ActivationRef”Event-guard activation selected from a Model.
@finalclass ActivationRef: @property def model_digest(self) -> str: ... @property def id(self) -> str: ... def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...Observation
Section titled “Observation”Value of an Observable evaluated on a Result, with the quadrature that was used.
quadratures maps Domain IDs to (kind, dimension, points per axis).
Point boundaries use one point. Values are expressed in SI units.
output is (retained output position, time in seconds, State identity),
or None for an instantaneous Result.
@finalclass Observation: def project_component(self, projection: Literal['real', 'imaginary', 'magnitude', 'squared_magnitude', 'phase'], index: int=0) -> tuple[float, Dimension] | None: ... @property def value(self) -> _TypedValue: ... @property def value_type(self) -> ValueType: ... @property def point(self) -> tuple[str, list[tuple[float, Dimension]]] | None: ... @property def output(self) -> tuple[int, float, str] | None: ... @property def result_identity(self) -> str: ... @property def observable_id(self) -> str: ... @property def evaluation_kind(self) -> Literal['value', 'parameter-jvp', 'state-jvp', 'state-second-variation']: ... @property def quadratures(self) -> dict[str, tuple[Literal['Point', 'GaussLegendre', 'SimplexDuffyGaussLegendre'], int, int]]: ...Eigenpair
Section titled “Eigenpair”Converged eigenvalue and mode, linked to their Fields and Result.
@finalclass Eigenpair: def field(self, field: FieldRef) -> tuple[Any, ValueType]: ... @property def eigenvalue(self) -> float: ... @property def mode(self) -> tuple[float | complex, ...]: ... @property def eigenvalue_type(self) -> ValueType: ... @property def mode_type(self) -> ValueType: ... @property def eigenvalue_field(self) -> FieldRef: ... @property def mode_field(self) -> FieldRef: ... @property def result_identity(self) -> str: ... @property def relative_residual(self) -> float: ... @property def normalization_defect(self) -> float: ...TrajectoryObservation
Section titled “TrajectoryObservation”Terminal value or temporal reduction of an Observable over a computed trajectory.
Values use coherent SI units. A time integral has the Observable’s dimension multiplied by seconds and is computed from the solver’s accepted steps, not from the saved output samples. Extrema retain the original units and return extremum_time_s. Closed windows include both event sides; exact computed ties choose earliest time then accepted occurrence. No extrema derivatives or continuous-solution error bounds are implied.
@finalclass TrajectoryObservation: @property def spatial_quadratures(self) -> dict[str, tuple[str, int, int]]: ... @property def extremum_time_s(self) -> float | None: ... @property def interval_s(self) -> tuple[float, float]: ... @property def endpoint_convention(self) -> str: ... @property def value(self) -> _TypedValue: ... @property def value_type(self) -> ValueType: ... @property def result_identity(self) -> str: ... @property def trajectory_identity(self) -> str: ... @property def observable_id(self) -> str: ... @property def evaluation_kind(self) -> Literal['terminal', 'time-integral', 'terminal-parameter-jvp', 'time-integral-parameter-jvp', 'time-minimum', 'time-maximum']: ... @property def interpolation(self) -> time.TimeObservationInterpolation | None: ... @property def parameter_jvp(self) -> bool: ...FiniteSpectrum
Section titled “FiniteSpectrum”Discrete Fourier transform of uniformly spaced samples of an Observable.
The forward transform uses a +i exponent with a 1/N factor and the inverse a
-i exponent; phases are measured from the first sample. Coefficients and
amplitudes keep the input units, power squares them, and power density and the
rectangle-transform estimate multiply them by seconds. reconstruct_sample
returns the windowed samples. Aliasing is not excluded, and this is not a
harmonic-response solve.
@finalclass FiniteSpectrum: @property def result_identity(self) -> str: ... @property def trajectory_identity(self) -> str: ... @property def observable_id(self) -> str: ... @property def interval_s(self) -> tuple[float, float]: ... @property def phase_reference_s(self) -> float: ... @property def spacing_s(self) -> float: ... @property def sample_count(self) -> int: ... @property def window(self) -> str: ... @property def endpoint_convention(self) -> str: ... @property def convention(self) -> str: ... @property def input_type(self) -> ValueType: ... @property def coefficient_type(self) -> ValueType: ... @property def coefficients(self) -> list[Any]: ... def frequency_hz(self, bin: int) -> float: ... def angular_frequency_rad_s(self, bin: int) -> float: ... def phase_rad(self, bin: int, *, component: int | None=None) -> float: ... def amplitude(self, bin: int, *, component: int | None=None) -> float: ... def one_sided_amplitude(self, bin: int, *, component: int | None=None) -> float: ... def power(self, bin: int, *, component: int | None=None) -> float: ... def power_density_per_hz(self, bin: int, *, component: int | None=None) -> float: ... def one_sided_power_density_per_hz(self, bin: int, *, component: int | None=None) -> float: ... def rectangle_transform_estimate(self, bin: int) -> Any: ... def reconstruct_sample(self, sample: int) -> Any: ... def projection_type(self, projection: str) -> ValueType: ...ObservableStateTangent
Section titled “ObservableStateTangent”Variation of a Result’s field coefficients, with units.
Fields that are left out have zero variation. Coefficients follow the field’s
vertex order, and their unit is given by a Dimension.
@finalclass ObservableStateTangent: @property def result_identity(self) -> str: ...integral
Section titled “integral”Construct an Observable integral with an explicit Domain measure.
def integral(value: _ExpressionLike, measure: _ExpressionLike) -> Expression: ...measure
Section titled “measure”Return the measure of a Domain, for use with integral.
def measure(domain: Domain) -> Expression: ...ParameterRef
Section titled “ParameterRef”Parameter selected from an immutable model.
@finalclass ParameterRef: @property def value(self) -> _TypedValue: ... @property def value_type(self) -> ValueType: ... @property def model_digest(self) -> str: ... @property def id(self) -> str: ... def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...PhysicalDomain
Section titled “PhysicalDomain”Named physical domain, such as electrical, with its across and through quantities.
@finalclass PhysicalDomain: def __new__(cls, name: str, *, across_name: str, across_type: ValueType, through_name: str, through_type: ValueType) -> Self: ... @property def name(self) -> str: ... @property def across_name(self) -> str: ... @property def through_name(self) -> str: ... @property def across_type(self) -> ValueType: ... @property def through_type(self) -> ValueType: ...PropertyBinding
Section titled “PropertyBinding”Property data (constant, analytic, or tabulated) bound into a Model, with its source and validity range.
@finalclass PropertyBinding: @property def composition(self) -> str | None: ... @property def contract(self) -> str: ... @property def release(self) -> str: ... @property def component(self) -> str: ... @property def requirement(self) -> str: ... @property def normalized_value(self) -> _TypedValue | None: ... @property def inputs(self) -> list[str]: ... @property def branch(self) -> str | None: ... @property def first_partials(self) -> bool: ... @property def derivatives(self) -> str: ... @property def value_type(self) -> ValueType: ... @property def validity(self) -> str: ... @property def citation(self) -> str: ... @property def license(self) -> str: ...QuantityLabel
Section titled “QuantityLabel”Display label for one quantity in a rendered Model.
@finalclass QuantityLabel: def __repr__(self) -> str: ... @property def identity(self) -> str: ... @property def scope(self) -> str: ... @property def occurrence(self) -> str: ... @property def role(self) -> str: ... @property def family_member(self) -> str | None: ... @property def selector(self) -> str: ... @property def graph_id(self) -> str | None: ... @property def definition_span(self) -> tuple[str, int, int] | None: ... @property def instance_span(self) -> tuple[str, int, int] | None: ... @property def label(self) -> str: ...Numerical plan: a Model together with its mesh, discretization, solver, and time settings.
The Model defines the physics. capability is a typed view of the field roles
and settings for this kind of problem; fields lists every FieldRef regardless
of problem kind.
@finalclass Plan: @property def enforcement(self) -> solve.ActiveSet | solve.StrictInterior | None: ... @staticmethod def from_bytes(data: bytes) -> Plan: ... @staticmethod def read(path: str | PathLike[str]) -> Plan: ... def to_bytes(self) -> bytes: ... def write(self, path: str | PathLike[str]) -> None: ... @property def identity(self) -> str: ... @property def model_id(self) -> str: ... @property def model_digest(self) -> str: ... @property def model_revision(self) -> int: ... @property def package_compilation_digest(self) -> str | None: ... @property def geometry_digest(self) -> str | None: ... @property def mesh_digest(self) -> str | None: ... @property def correspondence_digest(self) -> str | None: ... @property def production_digest(self) -> str | None: ... @property def realization_digest(self) -> str | None: ... @property def model(self) -> Model: ... @property def harmonic_original_model(self) -> Model | None: ... @property def harmonic_amplitudes(self) -> tuple[tuple[str, FieldRef, FieldRef], ...]: ... @property def harmonic_angular_frequency(self) -> float | None: ... @property def mesh(self) -> meshing.Mesh | None: ... @property def formulation(self) -> FormulationView | None: ... @property def capability(self) -> SpatialPlanView | solve.AlgebraicPlanView | solve.EigenPlanView | time.TimePlanView | fluid.IncompressibleFlowPlanView: ... @property def fields(self) -> tuple[FieldRef, ...]: ... def field_coefficient_entities(self, field: FieldRef, /) -> tuple[tuple[int, int], ...]: ... def field_gradient_modes(self, field: FieldRef, /) -> dict[tuple[int, int], tuple[tuple[tuple[int, int], int], ...]]: ... def field_exterior_derivative(self, field: FieldRef, /) -> dict[tuple[int, int], tuple[tuple[tuple[int, int], int], ...]]: ... @property def spatial(self) -> fem.Q1 | fem.TetrahedralEdge | fem.TetrahedralFace | fem.MiniP1 | fvm.CellCenteredTpfa | fvm.CellCentered | tuple[fem.ScopedSpatialPolicy, ...] | None: ... @property def solve(self) -> solve_module.ResolvedLinear | solve_module.ResolvedNewton | solve_module.HermitianEigen | None: ... @property def requested_solve(self) -> solve_module.Linear | solve_module.Newton | solve_module.HermitianEigen | None: ... @property def temporal(self) -> time.BackwardEuler | time.Tsitouras45 | time.ImplicitMidpoint | None: ... @property def execution(self) -> ResolvedExecution: ... def __repr__(self) -> str: ... def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...FieldRole
Section titled “FieldRole”Whether a field is a time-evolving state or an algebraic variable.
@finalclass FieldRole: Variable: ClassVar[FieldRole] State: ClassVar[FieldRole] def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...SpatialRegularity
Section titled “SpatialRegularity”Function-space regularity declared for a field, independent of the discretization.
@finalclass SpatialRegularity: Unspecified: ClassVar[SpatialRegularity] L2: ClassVar[SpatialRegularity] H1: ClassVar[SpatialRegularity] HCurl: ClassVar[SpatialRegularity] HDiv: ClassVar[SpatialRegularity] Smooth: ClassVar[SpatialRegularity] def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...Initial
Section titled “Initial”Equations solved together to set initial values.
@finalclass Initial: def __new__(cls, *equations: tuple[_ExpressionLike, _ExpressionLike]) -> Self: ... @property def equations(self) -> list[tuple[Expression, Expression]]: ...Relation
Section titled “Relation”Named set of equations, each given as a (left, right) pair.
@finalclass Relation: def __new__(cls, name: str, *, equations: Sequence[tuple[_ExpressionLike, _ExpressionLike]], domain: Domain | None=None) -> Self: ... @property def name(self) -> str: ... @property def equations(self) -> list[tuple[Expression, Expression]]: ... @property def domain(self) -> Domain | None: ...Result
Section titled “Result”Outcome of a completed run, with access to its fields and observations.
@finalclass Result: @property def initial_state(self) -> State | None: ... def reconstruct_harmonic_fields(self, *, time_seconds: float) -> tuple[tuple[FieldRef, object, ValueType], ...]: ... def reconstruct_harmonic_field_block(self, field: FieldRef, /, *, time_seconds: float, block: int=0) -> Array: ... @property def eigenpair_count(self) -> int: ... @property def eigen_convergence(self) -> str | None: ... @property def eigen_candidate_counts(self) -> tuple[int, int] | None: ... def spatial_step(self, output_index: int, /) -> SpatialStepObservation: ... def eigenpair(self, index: int) -> Eigenpair: ... def eigenprojector(self, indices: list[int]) -> tuple[object, ValueType]: ... @property def original_residual_norm(self) -> float | None: ... @property def compatibility_residual(self) -> float | None: ... @property def gauge_residual(self) -> float | None: ... @property def gauge_multiplier(self) -> float | None: ... @property def constraints(self) -> tuple[ConstraintMeasurement, ...]: ... @property def model_id(self) -> str: ... @property def model_digest(self) -> str: ... @property def model_revision(self) -> int: ... @property def plan_key(self) -> str: ... @property def adapter(self) -> str: ... @property def adapter_version(self) -> str: ... @property def elapsed_seconds(self) -> float: ... @property def profile(self) -> Profile | None: ... def to_bytes(self) -> bytes: ... @staticmethod def from_bytes(plan: Plan, data: bytes) -> Result: ... @staticmethod def read(plan: Plan, path: str | PathLike[str]) -> Result: ... def write(self, path: str | PathLike[str]) -> None: ... def export_xdmf(self, path: str | PathLike[str]) -> None: ... @property def fields(self) -> list[Series]: ... @property def solve(self) -> LinearSolveSummary | NonlinearSolveSummary: ... def observe_spectrum(self, observable: ObservableRef, *, start_s: float, spacing_s: float, count: int, window: str, max_products: int) -> FiniteSpectrum: ... def observe_terminal(self, observable: ObservableRef) -> TrajectoryObservation: ... def observe_time_integral(self, observable: ObservableRef, *, interpolation: time.TimeObservationInterpolation, interval_s: tuple[float, float] | None=None, quadrature_points: int | None=None) -> TrajectoryObservation: ... def observe_time_minimum(self, observable: ObservableRef, *, interpolation: time.TimeObservationInterpolation, interval_s: tuple[float, float] | None=None, quadrature_points: int | None=None) -> TrajectoryObservation: ... def observe_time_maximum(self, observable: ObservableRef, *, interpolation: time.TimeObservationInterpolation, interval_s: tuple[float, float] | None=None, quadrature_points: int | None=None) -> TrajectoryObservation: ... def observe_parameter_jvp(self, observable: ObservableRef, direction: dict[ParameterRef, tuple[Dimension, float]], *, output_index: int) -> Observation: ... def observe_terminal_parameter_jvp(self, observable: ObservableRef, direction: dict[ParameterRef, tuple[Dimension, float]]) -> TrajectoryObservation: ... def observe_time_integral_parameter_jvp(self, observable: ObservableRef, direction: dict[ParameterRef, tuple[Dimension, float]], *, interpolation: time.TimeObservationInterpolation, interval_s: tuple[float, float] | None=None) -> TrajectoryObservation: ... def observe(self, observable: ObservableRef, *, quadrature_points: int | None=None, output_index: int | None=None) -> Observation: ... def discretization_error_indicators(self, field: FieldRef, /, *, quadrature_points: int) -> tuple[Array, Dimension]: ... def observe_at(self, observable: ObservableRef, coordinates: Sequence[tuple[float, Dimension]], *, quadrature_points: int | None=None, output_index: int | None=None) -> Observation: ... def observable_state_tangent(self, directions: dict[FieldRef, tuple[Dimension, Sequence[float]]]) -> ObservableStateTangent: ... def observe_state_jvp(self, observable: ObservableRef, tangent: ObservableStateTangent, *, quadrature_points: int) -> Observation: ... def observe_state_second_variation(self, observable: ObservableRef, first: ObservableStateTangent, second: ObservableStateTangent, *, wrt: FieldRef, quadrature_points: int) -> Observation: ... def output(self, field: FieldRef, /) -> FieldOutput: ... def boundary_force(self, selection: geometry.GeometrySelection, /, *, output_index: int | None=None) -> trajectory.BoundaryForce: ... def boundary_flux(self, selection: geometry.GeometrySelection, /) -> trajectory.BoundaryFlux: ... def series(self, field: FieldRef, /, *, derivative_order: int=0, component: int=0, imaginary: bool=False) -> Series: ... def mesh(self, field: FieldRef, /) -> meshing.Mesh: ... @property def trajectory(self) -> trajectory.Trajectory: ...SpatialBalanceTerm
Section titled “SpatialBalanceTerm”Directed contribution from one equation in one mesh cell.
@finalclass SpatialBalanceTerm: @property def domain_id(self) -> str: ... @property def cell_index(self) -> int: ... @property def relation_id(self) -> str: ... @property def tested_field_id(self) -> str: ... @property def trial_field_id(self) -> str | None: ... @property def term_index(self) -> int: ... @property def role(self) -> Literal['storage', 'state-potential', 'dissipation', 'constraint-work', 'applied-volume-work']: ... @property def dimension(self) -> Dimension: ... @property def previous(self) -> float: ... @property def current(self) -> float: ... @property def increment(self) -> float: ... @property def work(self) -> float: ... def __repr__(self) -> str: ...SpatialBoundaryWork
Section titled “SpatialBoundaryWork”Boundary work and its weak action, with units and coefficient identity.
@finalclass SpatialBoundaryWork: @property def domain_id(self) -> str: ... @property def kind(self) -> Literal['natural', 'prescribed', 'interface']: ... @property def field_id(self) -> str: ... @property def connection_id(self) -> str | None: ... @property def cell_index(self) -> int | None: ... @property def entity(self) -> tuple[int, int] | None: ... @property def slot(self) -> int | None: ... @property def component(self) -> int | None: ... @property def work(self) -> float: ... @property def work_dimension(self) -> Dimension: ... @property def action(self) -> float | None: ... @property def action_dimension(self) -> Dimension | None: ... def __repr__(self) -> str: ...SpatialWorkDefect
Section titled “SpatialWorkDefect”Signed work residual for one domain and physical dimension.
@finalclass SpatialWorkDefect: @property def domain_id(self) -> str: ... @property def dimension(self) -> Dimension: ... @property def value(self) -> float: ... def __repr__(self) -> str: ...SpatialStepObservation
Section titled “SpatialStepObservation”Solver and work observations for one retained spatial output.
@finalclass SpatialStepObservation: @property def result_identity(self) -> str: ... @property def trajectory_identity(self) -> str: ... @property def output_index(self) -> int: ... @property def step_index(self) -> int: ... @property def previous_state_identity(self) -> str: ... @property def state_identity(self) -> str: ... @property def assembly_counts(self) -> tuple[int, int] | None: ... @property def balance_error(self) -> str | None: ... @property def solve(self) -> LinearSolveSummary | NonlinearSolveSummary | None: ... @property def volume_terms(self) -> tuple[SpatialBalanceTerm, ...]: ... @property def boundary_work(self) -> tuple[SpatialBoundaryWork, ...]: ... @property def defects(self) -> tuple[SpatialWorkDefect, ...]: ... def __repr__(self) -> str: ...Profile
Section titled “Profile”Timings and events recorded in this process for one profiled run.
@finalclass Profile: @property def phases(self) -> list[ProfilePhase]: ... @property def events(self) -> list[ProfileEvent]: ... @property def total_seconds(self) -> float: ... def summary(self) -> str: ...ProfileEvent
Section titled “ProfileEvent”Metadata recorded for a profiled phase or solver event.
Some phases keep every event. Phases that are only aggregated keep one
representative event, and ProfilePhase.calls gives the full count.
@finalclass ProfileEvent: @property def path(self) -> list[str]: ... @property def fields(self) -> dict[str, str]: ...ProfilePhase
Section titled “ProfilePhase”Total timing for one phase in the profile hierarchy.
Inclusive time includes nested phases; self time excludes them. fields
distinguishes phases that share the same path.
@finalclass ProfilePhase: @property def path(self) -> list[str]: ... @property def name(self) -> str: ... @property def fields(self) -> dict[str, str]: ... @property def calls(self) -> int: ... @property def inclusive_seconds(self) -> float: ... @property def self_seconds(self) -> float: ... @property def mean_seconds(self) -> float: ...Revision
Section titled “Revision”Identity of a Model: its ID, digest, and revision number.
@finalclass Revision: @property def model_id(self) -> str: ... @property def digest(self) -> str: ... @property def number(self) -> int: ... def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...ResolvedExecution
Section titled “ResolvedExecution”Scalar type, data layout, schedule, provider, and placement chosen for execution.
@finalclass ResolvedExecution: @property def scalar_type(self) -> str: ... @property def vector_layout(self) -> str: ... @property def schedule(self) -> str: ... @property def provider(self) -> str: ... @property def provider_version(self) -> str: ... @property def placement(self) -> str: ... @property def workers(self) -> int: ... def __repr__(self) -> str: ...SpatialPlanView
Section titled “SpatialPlanView”Plan view for a spatial problem: its scalar or vector Fields and coefficient settings.
@finalclass SpatialPlanView: @property def kind(self) -> str: ... @property def fields(self) -> tuple[FieldRef, ...]: ... @property def coefficient_sampling(self) -> str: ... @property def face_coefficient_policy(self) -> str: ...Handle to a submitted run. Await it, or call result(), to get the Result.
class Run(Generic[_RunResultT]): def __init__(self, native: Never) -> None: ... @property def status(self) -> RunStatus: ... @property def history(self) -> tuple[RunStatus, ...]: ... @property def progress(self) -> RunProgress | None: ... @property def cancellation(self) -> RunCancellation | None: ... @property def done(self) -> bool: ... @property def model_id(self) -> str: ... @property def model_digest(self) -> str: ... @property def model_revision(self) -> int: ... @property def package_compilation_digest(self) -> str | None: ... @property def plan_key(self) -> str: ... @property def adapter(self) -> str: ... @property def adapter_version(self) -> str: ... def cancel(self) -> bool: ... def result(self) -> _RunResultT: ... def __await__(self) -> Generator[Any, None, _RunResultT]: ...RunStatus
Section titled “RunStatus”Status of a run. A run only moves forward through these states.
@finalclass RunStatus: Created: ClassVar[RunStatus] Validating: ClassVar[RunStatus] Queued: ClassVar[RunStatus] Running: ClassVar[RunStatus] Cancelling: ClassVar[RunStatus] Cancelled: ClassVar[RunStatus] Completed: ClassVar[RunStatus] Failed: ClassVar[RunStatus] def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...Series
Section titled “Series”Read-only time series of one field, in SI units.
@finalclass Series: @property def field(self) -> FieldRef | None: ... @property def derivative_order(self) -> int: ... @property def component(self) -> int: ... @property def imaginary(self) -> bool: ... @property def id(self) -> str: ... @property def name(self) -> str | None: ... @property def dimension(self) -> tuple[Fraction, Fraction, Fraction, Fraction, Fraction, Fraction, Fraction]: ... @property def time(self) -> Array: ... @property def values(self) -> Array: ... def __len__(self) -> int: ... def __iter__(self) -> Iterator[tuple[float, float]]: ...Physical state associated with one Plan.
@finalclass State: def to_bytes(self) -> bytes: ... @staticmethod def from_bytes(plan: Plan, data: bytes) -> State: ... @staticmethod def initial(plan: Plan, /, *, fields: tuple[InitialField, ...] | None=None, time_s: float | None=None) -> State: ... @staticmethod def zero(plan: Plan, /, *, time_s: float=0.0) -> State: ... @staticmethod def from_result(plan: Plan, result: Result, /, *, time_s: float) -> State: ... @staticmethod def interpolate(plan: Plan, result: Result, /) -> State: ... @property def digest(self) -> str: ... @property def step(self) -> int: ... @property def time_s(self) -> float | None: ... @property def fields(self) -> tuple[trajectory.FieldSnapshot, ...]: ... @property def state_coordinates(self) -> tuple[tuple[FieldRef, int, int, bool], ...]: ... @property def state_space_identity(self) -> str: ... @property def mesh(self) -> meshing.Mesh | None: ... @property def model(self) -> Model | None: ... @property def source_plan_identity(self) -> str | None: ... @property def source_request_identity(self) -> str | None: ... @property def source_trajectory_identity(self) -> str | None: ... @property def source_kind(self) -> str | None: ... def field(self, field: FieldRef, /) -> trajectory.FieldSnapshot: ... def curl(self, field: FieldRef, /) -> trajectory.DerivedFieldSnapshot: ... def sample(self, field: FieldRef, /, *, at: tuple[float, float]) -> trajectory.FieldSample: ... def value(self, field: FieldRef, /, *, derivative_order: int=0) -> _TypedValue: ... def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...RunCancellation
Section titled “RunCancellation”Last accepted State and optional exact checkpoint when cancellation terminates.
@finalclass RunCancellation: @property def progress(self) -> RunProgress: ... @property def request_identity(self) -> str: ... @property def state(self) -> State: ... @property def checkpoint(self) -> ExecutionCheckpoint | None: ...RunProgress
Section titled “RunProgress”Last observed accepted numerical boundary; adaptive Runs have no fixed maximum step count.
@finalclass RunProgress: @property def accepted_steps(self) -> int: ... @property def maximum_steps(self) -> int | None: ... @property def model_time_s(self) -> float: ...StructuralSemanticFingerprint
Section titled “StructuralSemanticFingerprint”Fingerprint for comparing Model structure while ignoring names. Equal fingerprints do not mean identical Models.
@finalclass StructuralSemanticFingerprint: @property def generation(self) -> str: ... @property def digest(self) -> str: ... def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...ValidationError
Section titled “ValidationError”Raised when a model or request is invalid.
class ValidationError(EqioraError): ...ValueEdit
Section titled “ValueEdit”Prepared change to one value in a specific Model revision; apply it with Model.commit.
@finalclass ValueEdit: @property def key(self) -> str: ... @property def base_digest(self) -> str: ... @property def base_revision(self) -> int: ... @property def target_id(self) -> str: ... def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...See eqiora.viewer.View.
A disposable scene showing Eqiora values.
across
Section titled “across”Return the across variable of a scalar conserving port.
def across(port: ConservingPort) -> Expression: ...check_package_conformance
Section titled “check_package_conformance”Check a locked package and its dependencies by recompiling them and comparing the results.
def check_package_conformance(store_root: str | os.PathLike[str], resolution_bytes: bytes, *, entry_model: str, profile: str) -> PackageConformanceReport: ...compile
Section titled “compile”Compile Eqiora source, from a file or a string, into a Model, optionally with a Geometry.
def compile(*, path: str | PathLike[str] | None=None, source: str | Module | None=None, filename: str | None=None, geometry: geometry.Geometry | None=None, bindings: dict[str, _TypedValue | ClockDomain | CoordinateInterval | geometry.GeometrySelection | tuple[geometry.GeometrySelection, geometry.GeometrySelection] | tuple[tuple[geometry.GeometrySelection, ...], geometry.GeometrySelection]] | None=None, entry: str | None=None) -> Model: ...compile_package
Section titled “compile_package”Compile a Model or Component from a locked package project, optionally with a Geometry.
def compile_package(store_root: str | PathLike[str], resolution: bytes, *, entry: str, geometry: geometry.Geometry | None=None, bindings: dict[str, _TypedValue | ClockDomain | CoordinateInterval | geometry.GeometrySelection | tuple[geometry.GeometrySelection, geometry.GeometrySelection] | tuple[tuple[geometry.GeometrySelection, ...], geometry.GeometrySelection]] | None=None) -> Model: ...connect
Section titled “connect”Build an anonymous conserving connection declaration.
def connect(*ports: ConservingPort) -> Connection: ...derivative
Section titled “derivative”Return the time derivative of a field.
def derivative(field: Field) -> Expression: ...Return the spatial divergence of a symbolic expression.
def div(value: _ExpressionLike) -> Expression: ...Return the spatial gradient of a symbolic expression.
def grad(value: _ExpressionLike) -> Expression: ...See module eqiora.lang.
Author Eqiora Modules, Components, expressions, and equations in Python.
See module eqiora.units.
Shared units for input quantities and explicit presentation.
See module eqiora.data.
Explicit numeric adapters and canonical resolved-array artifacts.
resolve
Section titled “resolve”Combine a Model with numerical settings to produce a Plan.
The spatial, solve, and time settings choose the numerical method; they never
change the physics. The Plan keeps the Model and Mesh you pass in unchanged
(the Mesh is not regenerated). A Model without spatial fields rejects mesh
and spatial.
def resolve(model: Model, *, mesh: meshing.Mesh | None=None, spatial: fem.Q1 | fem.TetrahedralEdge | fem.TetrahedralFace | fem.MiniP1 | fvm.CellCenteredTpfa | fvm.CellCentered | tuple[fem.ScopedSpatialPolicy, ...] | None=None, formulation: FormulationKind | None=None, solve: solve.Linear | solve.Newton | solve.HermitianEigen | None=None, scaling: fluid.IncompressibleScaling | dict[ConstraintRef, tuple[float, Dimension]] | None=None, temporal: time.BackwardEuler | time.Tsitouras45 | time.ImplicitMidpoint | None=None, enforcement: solve.ActiveSet | solve.StrictInterior | None=None) -> Plan: ...ProjectUpdate
Section titled “ProjectUpdate”Validated dependency resolution that you can inspect and then commit once.
@finalclass ProjectUpdate: @property def resolution(self) -> bytes: ... @property def lock(self) -> bytes: ... @property def explanation(self) -> str: ... def __repr__(self) -> str: ... def commit(self, store_root: str | PathLike[str]) -> bytes: ...preview_local_project
Section titled “preview_local_project”Resolve a project’s dependencies without installing them or writing the lock.
def preview_local_project(project_root: str | PathLike[str]) -> ProjectUpdate: ...resolve_local_project
Section titled “resolve_local_project”Resolve a local package project, write eqiora.lock, and populate a store.
def resolve_local_project(project_root: str | PathLike[str], store_root: str | PathLike[str]) -> bytes: ...add_local_dependency
Section titled “add_local_dependency”Add or replace a local path dependency, then update the manifest and lock.
def add_local_dependency(project_root: str | PathLike[str], store_root: str | PathLike[str], name: str, *, version: str, path: str) -> bytes: ...remove_local_dependency
Section titled “remove_local_dependency”Remove a direct dependency and update the manifest and lock.
def remove_local_dependency(project_root: str | PathLike[str], store_root: str | PathLike[str], name: str) -> bytes: ...Run a Plan and wait for the Result. Transient Plans need an end time or a step count.
def run(plan: Plan, *, state: State | None=None, checkpoint: ExecutionCheckpoint | None=None, until_s: float | None=None, output_times_s: tuple[float, ...] | None=None, steps: int | None=None, output_steps: tuple[int, ...] | None=None, master_seed: bytes | None=None, sampling: SamplingIdentity | None=None, profile: bool=False) -> Result: ...submit
Section titled “submit”Start a Plan running and return a Run handle immediately. Transient Plans need an end time or a step count.
def submit(plan: Plan, *, state: State | None=None, checkpoint: ExecutionCheckpoint | None=None, until_s: float | None=None, output_times_s: tuple[float, ...] | None=None, steps: int | None=None, output_steps: tuple[int, ...] | None=None, master_seed: bytes | None=None, sampling: SamplingIdentity | None=None, profile: bool=False) -> Run[Result]: ...SamplingIdentity
Section titled “SamplingIdentity”Stable sample/channel identity; lineage records occurrence without changing draws.
Coupling explicitly selects a shared stream group. Unequal identities alone do not prove statistical independence.
@finalclass SamplingIdentity: def __new__(cls, sample_id: bytes, channel: bytes, /, *, lineage: Sequence[int]=(), coupling_id: bytes | None=None) -> Self: ... @property def sample_id(self) -> bytes: ... @property def channel(self) -> bytes: ... @property def lineage(self) -> list[int]: ... @property def coupling_id(self) -> bytes | None: ... def __repr__(self) -> str: ...through
Section titled “through”Return the through variable of a scalar conserving port.
def through(port: ConservingPort) -> Expression: ...Return the boundary trace of a symbolic expression.
def trace(value: _ExpressionLike, *, on: Domain | None=None, from_: Domain | None=None) -> Expression: ...See module eqiora.diff.
Implicit differentiation of Eqiora programs.
See module eqiora.fem.
Finite-element discretization policies.
See module eqiora.fluid.
Configure incompressible flow and inspect its results.
formulation
Section titled “formulation”See module eqiora.formulation.
Choose a mathematical formulation and inspect the resolved choice.
See module eqiora.fvm.
Finite-volume discretization policies.
geometry
Section titled “geometry”See module eqiora.geometry.
Build geometry and select its regions and boundaries.
meshing
Section titled “meshing”See module eqiora.meshing.
Plan and generate meshes from geometry.
See module eqiora.solid.
Configure linear elasticity and inspect structural results.
See module eqiora.solve.
Linear, nonlinear, and eigenvalue solver settings.
See module eqiora.time.
Time-integration methods and related settings.
trajectory
Section titled “trajectory”See module eqiora.trajectory.
Read spatial trajectories and derived fields.
add_bundled_dependency
Section titled “add_bundled_dependency”Add a package bundled with Eqiora as a dependency, updating the manifest and lock.
def add_bundled_dependency(project_root: str | PathLike[str], store_root: str | PathLike[str], name: str, *, version: str) -> bytes: ...add_git_dependency
Section titled “add_git_dependency”Add a package from a Git repository at a fixed revision, updating the manifest and lock.
def add_git_dependency(project_root: str | PathLike[str], store_root: str | PathLike[str], name: str, *, version: str, repository: str, revision: str) -> bytes: ...fetch_project
Section titled “fetch_project”Download the packages listed in the existing lock into the store, without changing the lock.
def fetch_project(project_root: str | PathLike[str], store_root: str | PathLike[str]) -> bytes: ...open_project
Section titled “open_project”Open an installed project and check it against its lock, using only the given store (no network).
def open_project(project_root: str | PathLike[str], store_root: str | PathLike[str]) -> bytes: ...update_project
Section titled “update_project”Resolve the project’s dependency requests again and write a new lock.
def update_project(project_root: str | PathLike[str], store_root: str | PathLike[str]) -> bytes: ...vendor_project
Section titled “vendor_project”Copy the project’s locked dependencies into a directory for offline use.
def vendor_project(project_root: str | PathLike[str], store_root: str | PathLike[str], destination: str | PathLike[str]) -> bytes: ...