|
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 | _K (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 bend in hardline, resisted according to how tight it actually is. ``fluids.bend_rounded`` takes the real centreline radius rather than a nominal elbow class, which matters: the resistance of a bend is a strong function of r/D, and a tube bent on whatever former was to hand is not a long-radius elbow. Between r/D = 1 and r/D = 5 the loss changes severalfold. The curvature's effect on friction is inside that correlation already, so this deliberately does *not* add a curved-friction term on top -- that would count the same physics twice. :class:`FlexHose` is the case where curved friction is added, because there the whole run is bent rather than a discrete arc of it. Minimum bend radius is checked but never enforced. See :meth:`check`.
Definition at line 250 of file elements.py.
|
protected |
Definition at line 269 of file elements.py.
References p, and feedtwin.comps.base.HydraulicComponent.p.
Referenced by diagnostics(), and pressure_drop().
| list[Violation] feedtwin.comps.elements.Bend.check | ( | self | ) |
Is this bend tighter than the tube allows? Reported, not raised: a line bent too tight is buildable, and the model should still solve so the cost is visible. Quoted against OD where one is given, because that is how tube benders and hose datasheets state it.
Reimplemented from feedtwin.comps.base.HydraulicComponent.
Definition at line 300 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.Bend.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 291 of file elements.py.
References _K(), feedtwin.comps.elements.Fitting._K(), p, and feedtwin.comps.base.HydraulicComponent.p.
| float feedtwin.comps.elements.Bend.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 282 of file elements.py.
References feedtwin.comps.elements._dynamic_head(), _K(), feedtwin.comps.elements.Fitting._K(), p, and feedtwin.comps.base.HydraulicComponent.p.