|
STAR
Cal STAR — firmware, DAQ server, and engine design
|
Public Member Functions | |
| float | pressure_drop (self, float mdot, FlowConditions flow) |
| dict[str, float] | diagnostics (self, float mdot, FlowConditions flow) |
| list[Violation] | check (self) |
| Public Member Functions inherited from feedtwin.comps.base.HydraulicComponent | |
| None | __init__ (self, ComponentInstance instance) |
| str | id (self) |
| str | type (self) |
| float | static_head (self, FlowConditions flow) |
| float | total_dp (self, float mdot, FlowConditions flow) |
| float | signal (self, FlowConditions flow, str name, float default=1.0) |
| bool | isolates (self, Mapping[str, float]|None signals=None) |
| float|None | flow_ceiling (self, FlowConditions flow) |
| float|None | pinned_flow (self, float dp_available, FlowConditions flow) |
| bool | is_choked (self, float dp_available, FlowConditions flow) |
| int | n_residuals (self) |
| Sequence[float] | residuals (self, EvalContext ctx) |
| Mapping[str, float] | outputs (self, EvalContext ctx) |
| FlowConditions | conditions (self, PortState port, Mapping[str, float] signals) |
| str | __repr__ (self) |
Protected Member Functions | |
| float | _friction_factor (self, float mdot, FlowConditions flow) |
Additional Inherited Members | |
| Public Attributes inherited from feedtwin.comps.base.HydraulicComponent | |
| instance = instance | |
| p = instance.si_params() | |
| opt = dict(instance.options) | |
| Static Public Attributes inherited from feedtwin.comps.base.HydraulicComponent | |
| str | inlet_port = "inlet" |
| str | outlet_port = "outlet" |
| bool | symmetric = False |
| conditions_provider = None | |
A flexible hose: rougher than tube, crimped ends, and a bend limit. Three things separate it from hardline, and all three change the answer: * **It is rougher.** A smooth-bore liner is close to drawn tube; convoluted metal hose is several times worse, because the convolutions are in the flow path and not merely in the braid. * **Its ends are fittings.** Two crimped transitions, which on a short hose dominate the loss entirely. * **It is usually bent.** When ``installed_bend_radius`` is set, friction is computed for curved flow through ``fluids.friction_factor_curved`` -- and unlike a discrete bend, the whole developed length is curved, so this is where that term belongs. Minimum bend radius is generally what actually constrains a routing, and is quoted twice: a static limit, and a larger dynamic one for anything that gimbals, grows thermally or vibrates.
Definition at line 334 of file elements.py.
|
protected |
Definition at line 356 of file elements.py.
References feedtwin.comps.base.HydraulicComponent.opt, p, and feedtwin.comps.base.HydraulicComponent.p.
Referenced by diagnostics(), and pressure_drop().
| list[Violation] feedtwin.comps.elements.FlexHose.check | ( | self | ) |
Is the hose routed tighter than it may be bent? Both limits are checked. The dynamic one is a warning rather than an error because whether a given hose actually moves in service is a fact about the installation that the model does not know -- but a run inside the static limit and outside the dynamic one is exactly the case worth surfacing rather than silently passing.
Reimplemented from feedtwin.comps.base.HydraulicComponent.
Definition at line 401 of file elements.py.
References _USBD_HandleTypeDef.id, anonymous_namespace{config_broadcast_service_main.cpp}::BoardInfo.id, anonymous_namespace{idle_e2e.cpp}::Check.id, backend.routers.layerx.Job.id, check_t.id, detail::exception.id, engine.layerx.sources.Drawing.id, feedtwin.comps.base.HydraulicComponent.id(), feedtwin.comps.elements.OrificeISO5167.id, feedtwin.comps.gas.GasOrifice.id, feedtwin.comps.manifold.Manifold.id, feedtwin.comps.regulator.Regulator.id, feedtwin.comps.relief.ReliefValve.id, feedtwin.engine.component.InjectorLeg.id, feedtwin.session.core.Session.id, feedtwin.session.hookup.Knob.id, fsw::config::StateDef.id, p, and feedtwin.comps.base.HydraulicComponent.p.
| dict[str, float] feedtwin.comps.elements.FlexHose.diagnostics | ( | self, | |
| float | mdot, | ||
| FlowConditions | flow ) |
Derived quantities worth reporting: velocity, Reynolds number, K. Never consumed by a solver. This is what a frame and a report show, and what makes a result inspectable rather than just a number.
Reimplemented from feedtwin.comps.base.HydraulicComponent.
Definition at line 385 of file elements.py.
References feedtwin.comps.elements._dynamic_head(), _friction_factor(), p, and feedtwin.comps.base.HydraulicComponent.p.
| float feedtwin.comps.elements.FlexHose.pressure_drop | ( | self, | |
| float | mdot, | ||
| FlowConditions | flow ) |
Flow-dependent pressure loss [Pa]. Always non-negative. A *loss*: it opposes the flow, so it lowers the downstream pressure whichever way the fluid is going. Reverse flow is each component's own business -- symmetric for a pipe, very much not for a check valve. Anything that does **not** depend on the direction of flow belongs in :meth:`static_head`, not here. See that method for why the distinction is load-bearing rather than tidy.
Reimplemented from feedtwin.comps.base.HydraulicComponent.
Definition at line 379 of file elements.py.
References feedtwin.comps.elements._dynamic_head(), _friction_factor(), p, and feedtwin.comps.base.HydraulicComponent.p.