eqiora.trajectory
Read spatial trajectories and derived fields.
View sourceExample: inspect spatial observations
Section titled “Example: inspect spatial observations”A transient spatial run from modeling returns a Result
whose trajectory carries spatial observations:
trajectory = result.trajectoryfor state in trajectory.states: print(state.time_s)print(trajectory.coordinates.shape, trajectory.cells.shape)The times are in seconds, and the array shapes describe the vertices and
cells. The trajectory supplies the spatial data for
Matplotlib plots and the derived-field
operations below. For an ODE without a mesh, read the time series with
result.series instead.
For the fixed-reference fluid–structure example, inspect the solver and work contributions at a retained output:
step = result.spatial_step(len(trajectory.states) - 1)print(step.solve)for term in step.volume_terms: print(term.domain_id, term.role, term.current, term.dimension)Each contribution keeps its equation, field, cell, and physical units. The
output index selects a retained observation; step.step_index gives its time-step
number.
BoundaryForce
Section titled “BoundaryForce”Signed 2D force (two components) on one boundary.
source_digest binds the exact Result artifact identity. output_index
selects a retained transient output, or is None for a steady Result.
@finalclass BoundaryForce: @property def digest(self) -> str: ... @property def source_digest(self) -> str: ... @property def source_kind(self) -> str: ... @property def output_index(self) -> int | None: ... @property def selection(self) -> GeometrySelection: ... @property def geometry_digest(self) -> str: ... @property def mesh_digest(self) -> str: ... @property def on_domain(self) -> tuple[float, float]: ... @property def on_selection(self) -> tuple[float, float]: ... @property def dimension(self) -> tuple[Fraction, Fraction, Fraction, Fraction, Fraction, Fraction, Fraction]: ... @property def frame(self) -> str: ... def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...BoundaryFlux
Section titled “BoundaryFlux”Signed 2D volume flux through one boundary.
@finalclass BoundaryFlux: @property def digest(self) -> str: ... @property def source_digest(self) -> str: ... @property def selection(self) -> GeometrySelection: ... @property def geometry_digest(self) -> str: ... @property def mesh_digest(self) -> str: ... @property def value(self) -> float: ... @property def dimension(self) -> tuple[Fraction, Fraction, Fraction, Fraction, Fraction, Fraction, Fraction]: ... @property def frame(self) -> str: ... def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...DerivedFieldSnapshot
Section titled “DerivedFieldSnapshot”Quantity derived from one spatial Field, such as its curl.
@finalclass DerivedFieldSnapshot: @property def digest(self) -> str: ... @property def source_state_digest(self) -> str: ... @property def source_field(self) -> FieldRef: ... @property def mesh_digest(self) -> str: ... @property def support_domain_id(self) -> str: ... @property def operator(self) -> str: ... @property def dimension(self) -> tuple[Fraction, Fraction, Fraction, Fraction, Fraction, Fraction, Fraction]: ... @property def value_shape(self) -> tuple[int, ...]: ... @property def frame(self) -> str: ... @property def associations(self) -> tuple[str, ...]: ... @property def block_digests(self) -> tuple[tuple[str, str], ...]: ... def values(self, association: str, /) -> npt.NDArray[np.float64]: ... def support_indices(self, association: str, /) -> npt.NDArray[np.uint32]: ... def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...FieldSample
Section titled “FieldSample”Value of a continuous Field at one physical point.
@finalclass FieldSample: @property def digest(self) -> str: ... @property def source_state_digest(self) -> str: ... @property def field(self) -> FieldRef: ... @property def mesh_digest(self) -> str: ... @property def support_domain_id(self) -> str: ... @property def point_m(self) -> tuple[float, float]: ... @property def value(self) -> float: ... @property def dimension(self) -> tuple[Fraction, Fraction, Fraction, Fraction, Fraction, Fraction, Fraction]: ... @property def frame(self) -> str: ... def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...FieldSnapshot
Section titled “FieldSnapshot”Field values in one trajectory state.
@finalclass FieldSnapshot: @property def digest(self) -> str: ... @property def mesh_digest(self) -> str: ... @property def field(self) -> FieldRef: ... @property def support_domain_id(self) -> str: ... @property def dimension(self) -> tuple[Fraction, Fraction, Fraction, Fraction, Fraction, Fraction, Fraction]: ... @property def value_shape(self) -> tuple[int, ...]: ... @property def frame(self) -> str: ... @property def associations(self) -> tuple[str, ...]: ... @property def block_digests(self) -> tuple[tuple[str, str], ...]: ... def values(self, association: str, /) -> npt.NDArray[np.float64]: ... def support_indices(self, association: str, /) -> npt.NDArray[np.uint32]: ... def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...Trajectory
Section titled “Trajectory”Immutable sequence of saved states from a spatial run.
@finalclass Trajectory: def to_bytes(self) -> bytes: ... @staticmethod def from_bytes(plan: Plan, data: bytes) -> Trajectory: ... @staticmethod def read(plan: Plan, path: str | PathLike[str]) -> Trajectory: ... def write(self, path: str | PathLike[str]) -> None: ... def export_xdmf(self, path: str | PathLike[str]) -> None: ... @property def model_digest(self) -> str: ... @property def geometry_digest(self) -> str: ... @property def correspondence_digest(self) -> str: ... @property def mesh_digest(self) -> str: ... @property def realization_digest(self) -> str | None: ... @property def plan_identity(self) -> str | None: ... @property def run_digest(self) -> str | None: ... @property def request_identity(self) -> str | None: ... @property def digest(self) -> str: ... @property def dimension(self) -> int: ... @property def coordinates(self) -> npt.NDArray[np.float64]: ... @property def cells(self) -> npt.NDArray[np.uint32]: ... @property def states(self) -> tuple[State, ...]: ... def state(self, step: int, /) -> State: ... def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...See eqiora.State.
Physical state associated with one Plan.