|
STAR
Cal STAR — firmware, DAQ server, and engine design
|
Classes | |
| class | GasOrifice |
Functions | |
| float | critical_pressure_ratio (float gamma) |
| float | choked_mass_flow (float area, float cd, float p_upstream, float temperature, float gamma, float r_specific) |
| float | subsonic_mass_flow (float area, float cd, float p_upstream, float pressure_ratio, float temperature, float gamma, float r_specific) |
| HydraulicComponent | _measured_gas (object instance) |
Variables | |
| list | __all__ = ["R_UNIVERSAL"] |
Compressible flow: the pressurant path. The liquid side is nearly incompressible, so a loss coefficient and a dynamic head describe it. Gas is not, and two things change: **Density falls as pressure does.** A long gas line is not one density; the velocity climbs along it as the gas expands. Below roughly 10% pressure drop the error in ignoring that is small, and above it the line has to be integrated. **Flow chokes.** Below a critical pressure ratio the throat goes sonic and mass flow stops depending on downstream pressure entirely. That is not a numerical inconvenience -- it is how a regulator seat and a relief orifice actually behave, and it puts a hard ceiling on what a restriction can pass. Asked for more than that ceiling, this raises :class:`~feedtwin.comps.base.InfeasibleOperatingPoint` rather than returning a pressure that cannot exist. Everything here is expressed in the same direction as the liquid components -- pressure drop as a function of mass flow -- so the network solver needs to know nothing about which side of the system it is assembling.
|
protected |
| float feedtwin.comps.gas.choked_mass_flow | ( | float | area, |
| float | cd, | ||
| float | p_upstream, | ||
| float | temperature, | ||
| float | gamma, | ||
| float | r_specific ) |
The most a restriction can pass at this upstream state [kg/s]. ``mdot = Cd A p1 sqrt(gamma / (R T)) . (2/(gamma+1))^((gamma+1)/(2(gamma-1)))`` A hard ceiling, not an asymptote. Opening the downstream side further buys nothing once this is reached, which is why a relief orifice is sized on it and why a regulator seat behaves the way it does.
Definition at line 52 of file gas.py.
Referenced by feedtwin.comps.gas.GasOrifice.choked_flow(), and feedtwin.comps.gas.GasOrifice.pressure_drop().
| float feedtwin.comps.gas.critical_pressure_ratio | ( | float | gamma | ) |
``p_throat / p_upstream`` at which the throat goes sonic. About 0.528 for a diatomic gas, 0.487 for helium. Below this the throat is choked and downstream pressure stops mattering.
Definition at line 43 of file gas.py.
Referenced by feedtwin.comps.gas.GasOrifice.choking_pressure_drop(), feedtwin.comps.gas.GasOrifice.diagnostics(), and feedtwin.comps.gas.GasOrifice.is_choked().
| float feedtwin.comps.gas.subsonic_mass_flow | ( | float | area, |
| float | cd, | ||
| float | p_upstream, | ||
| float | pressure_ratio, | ||
| float | temperature, | ||
| float | gamma, | ||
| float | r_specific ) |