eqiora.fluid
Configure incompressible flow and inspect its results.
View sourceExample: choose reference scales
Section titled “Example: choose reference scales”from eqiora.fluid import IncompressibleScaling
scaling = IncompressibleScaling(length_m=0.1, velocity_m_per_s=1.0)print(scaling.length_m, scaling.velocity_m_per_s)For the exact-cylinder flow setup in modeling, pass this
as scaling= to eqiora.resolve. These reference values scale the numerical
system; inlet speed, viscosity, and other physical values belong in the model.
IncompressibleFlowPlanView
Section titled “IncompressibleFlowPlanView”Plan view for incompressible flow: velocity and pressure fields, their spaces, the pressure gauge, and the scales.
@finalclass IncompressibleFlowPlanView: @property def kind(self) -> str: ... @property def velocity(self) -> FieldRef: ... @property def pressure(self) -> FieldRef: ... @property def velocity_space(self) -> str: ... @property def pressure_space(self) -> str: ... @property def pressure_gauge(self) -> PressureGauge2d | None: ... @property def scaling(self) -> IncompressibleScales: ... @property def scaling_receipt(self) -> IncompressibleScalingReceipt2d: ...IncompressibleScales
Section titled “IncompressibleScales”Scales used by a resolved 2D incompressible-flow Plan.
@finalclass IncompressibleScales: @property def length_m(self) -> float: ... @property def velocity_m_per_s(self) -> float: ... @property def pressure_pa(self) -> float: ... @property def gauge_per_s(self) -> float: ... @property def weak_functional_w(self) -> float: ...IncompressibleScaling
Section titled “IncompressibleScaling”Reference scales to set by hand for supported 2D incompressible-flow Plans.
A component left as None is derived automatically when the Plan is resolved.
@finalclass IncompressibleScaling: def __new__(cls, *, length_m: float | None=None, velocity_m_per_s: float | None=None, pressure_pa: float | None=None) -> IncompressibleScaling: ... @property def length_m(self) -> float | None: ... @property def velocity_m_per_s(self) -> float | None: ... @property def pressure_pa(self) -> float | None: ... def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...IncompressibleScalingAuthority2d
Section titled “IncompressibleScalingAuthority2d”Model or geometry value that a scaling component was derived from.
@finalclass IncompressibleScalingAuthority2d: @property def kind(self) -> IncompressibleScalingAuthorityKind: ... @property def axis(self) -> int | None: ... @property def bounds_m(self) -> tuple[float, float] | None: ... @property def coordinate_m(self) -> tuple[float, float] | None: ... @property def outward_normal(self) -> tuple[float, float] | None: ... @property def velocity_m_per_s(self) -> tuple[float, float] | None: ... @property def dynamic_viscosity_pa_s(self) -> float | None: ...IncompressibleScalingAuthorityKind
Section titled “IncompressibleScalingAuthorityKind”Kind of value a scaling component was derived from.
@finalclass IncompressibleScalingAuthorityKind: ManualRequest: ClassVar[IncompressibleScalingAuthorityKind] ExactGeometrySpan: ClassVar[IncompressibleScalingAuthorityKind] ModelInletMaximum: ClassVar[IncompressibleScalingAuthorityKind] ModelDynamicViscosity: ClassVar[IncompressibleScalingAuthorityKind] def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...IncompressibleScalingComponent2d
Section titled “IncompressibleScalingComponent2d”Component of the 2D incompressible-flow scaling.
@finalclass IncompressibleScalingComponent2d: Length: ClassVar[IncompressibleScalingComponent2d] Velocity: ClassVar[IncompressibleScalingComponent2d] Pressure: ClassVar[IncompressibleScalingComponent2d] Gauge: ClassVar[IncompressibleScalingComponent2d] WeakFunctional: ClassVar[IncompressibleScalingComponent2d] def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...IncompressibleScalingComponentRecord2d
Section titled “IncompressibleScalingComponentRecord2d”Value of one scaling component and how it was obtained.
@finalclass IncompressibleScalingComponentRecord2d: @property def component(self) -> IncompressibleScalingComponent2d: ... @property def value(self) -> float: ... @property def dimension(self) -> tuple[Fraction, Fraction, Fraction, Fraction, Fraction, Fraction, Fraction]: ... @property def mode(self) -> IncompressibleScalingMode: ... @property def rule(self) -> IncompressibleScalingRule2d: ... @property def dependencies(self) -> tuple[IncompressibleScalingComponent2d, ...]: ... @property def authorities(self) -> tuple[IncompressibleScalingAuthority2d, ...]: ...IncompressibleScalingMode
Section titled “IncompressibleScalingMode”Whether a scaling component was set by hand, chosen automatically, or derived from other components.
@finalclass IncompressibleScalingMode: Manual: ClassVar[IncompressibleScalingMode] Automatic: ClassVar[IncompressibleScalingMode] Derived: ClassVar[IncompressibleScalingMode] def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...IncompressibleScalingReceipt2d
Section titled “IncompressibleScalingReceipt2d”Record of all five scaling components and the Model, geometry, and mesh they were derived from.
@finalclass IncompressibleScalingReceipt2d: @property def provenance_digest(self) -> str: ... @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 production_digest(self) -> str | None: ... @property def length(self) -> IncompressibleScalingComponentRecord2d: ... @property def velocity(self) -> IncompressibleScalingComponentRecord2d: ... @property def pressure(self) -> IncompressibleScalingComponentRecord2d: ... @property def gauge(self) -> IncompressibleScalingComponentRecord2d: ... @property def weak_functional(self) -> IncompressibleScalingComponentRecord2d: ... @property def components(self) -> tuple[IncompressibleScalingComponentRecord2d, ...]: ...IncompressibleScalingRule2d
Section titled “IncompressibleScalingRule2d”Rule used to compute one scaling component.
@finalclass IncompressibleScalingRule2d: ManualOverrideV1: ClassVar[IncompressibleScalingRule2d] ExactChannelHeightV1: ClassVar[IncompressibleScalingRule2d] ExactInletMaximumV1: ClassVar[IncompressibleScalingRule2d] ViscousStokesPressureV1: ClassVar[IncompressibleScalingRule2d] GaugeRateV1: ClassVar[IncompressibleScalingRule2d] WeakFunctionalV1: ClassVar[IncompressibleScalingRule2d] def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...PressureGauge2d
Section titled “PressureGauge2d”How a transient flow Plan fixes the pressure constant: zero integral or boundary traction.
@finalclass PressureGauge2d: ZeroIntegral: ClassVar[PressureGauge2d] BoundaryTraction: ClassVar[PressureGauge2d] def __eq__(self, other: object, /) -> bool: ... def __hash__(self) -> int: ...SteadyStokesEvidence
Section titled “SteadyStokesEvidence”Diagnostics from a steady Stokes result: pressure range, net flux, momentum balance, and solver summary.
@finalclass SteadyStokesEvidence: @property def plan_key(self) -> str: ... @property def pressure_minimum(self) -> float: ... @property def pressure_maximum(self) -> float: ... @property def exact_bounds(self) -> tuple[tuple[float, float], tuple[float, float]]: ... @property def net_flux(self) -> float: ... @property def constrained_reaction(self) -> tuple[float, float]: ... @property def integrated_body_force(self) -> tuple[float, float]: ... @property def integrated_boundary_traction(self) -> tuple[float, float]: ... @property def momentum_closure(self) -> tuple[float, float]: ... @property def solve(self) -> LinearSolveSummary: ... @property def continuity_residual_norm(self) -> float: ...steady_stokes_evidence
Section titled “steady_stokes_evidence”Return the diagnostics of a steady Stokes result.
def steady_stokes_evidence(result: Result, /) -> SteadyStokesEvidence: ...