Skip to content
Get started

eqiora.trajectory

← Python API index

Read spatial trajectories and derived fields.

View source

A transient spatial run from modeling returns a Result whose trajectory carries spatial observations:

python
trajectory = result.trajectory
for 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:

python
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.

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.

python
@final
class 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: ...

Signed 2D volume flux through one boundary.

python
@final
class 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: ...

Quantity derived from one spatial Field, such as its curl.

python
@final
class 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: ...

Value of a continuous Field at one physical point.

python
@final
class 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: ...

Field values in one trajectory state.

python
@final
class 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: ...

Immutable sequence of saved states from a spatial run.

python
@final
class 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.