STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
feedtwin.comps.elements.FlexHose Class Reference
Inheritance diagram for feedtwin.comps.elements.FlexHose:
[legend]
Collaboration diagram for feedtwin.comps.elements.FlexHose:
[legend]

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

Detailed Description

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.

Member Function Documentation

◆ _friction_factor()

float feedtwin.comps.elements.FlexHose._friction_factor ( self,
float mdot,
FlowConditions flow )
protected

◆ check()

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.

◆ diagnostics()

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.

◆ pressure_drop()

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.


The documentation for this class was generated from the following file: