This sublibrary contains models and functions providing pressure loss correlations. All models in this library have the property that no mass and no energy is stored in the component. Therefore, none of the models have a state.
All functions are continuous and have a finite, non-zero, smooth, first derivative. The functions are all guaranteed to be strict monotonically increasing. The mentioned properties guarantee that a unique inverse of every function exists. Note, the usual quadratic pressure loss correlation
The two mentioned problems are solved in this package by approximating the characteristics around zero mass flow rates with appropriate polynomials. The monotonicity is guaranteed using results from:
Extends from Modelica.Icons.VariantsPackage
(Icon for package containing variants).
Name | Description |
---|---|
AbruptAdaptor | Pressure drop in pipe due to suddenly expanding or reducing area (for both flow directions) |
BaseClasses … | Base classes used in the Fittings package (only of interest to build new component models) |
Bends … | Flow models for bends |
GenericResistances … | Flow models for generic resistances |
MultiPort | Multiply a port; useful if multiple connections shall be made to a port exposing a state |
Orifices … | Flow models for orifices |
SharpEdgedOrifice | Pressure drop due to sharp edged orifice (for both flow directions) |
SimpleGenericOrifice | Simple generic orifice defined by pressure loss coefficient and diameter (only for flow from port_a to port_b) |
TeeJunctionIdeal | Splitting/joining component with static balances for an infinitesimal control volume |
TeeJunctionVolume | Splitting/joining component with static balances for a dynamic control volume |
This pressure drop component defines a simple, generic orifice, where the loss factor ζ is provided for one flow direction (e.g., from loss table of a book):
Δp = 0.5*ζ*ρ*v*|v| = 8*ζ/(π^2*D^4*ρ) * m_flow*|m_flow|
where
Since the pressure loss factor zeta is provided only for a mass flow from port_a to port_b, the pressure loss is not correct when the flow is reversing. If reversing flow only occurs in a short time interval, this is most likely uncritical. If significant reversing flow can appear, this component should not be used.
Extends from Modelica.Fluid.Interfaces.PartialTwoPortTransport
(Partial element transporting fluid between two ports without storage of mass or energy) and Modelica.Fluid.Interfaces.PartialLumpedFlow
(Base class for a lumped momentum balance).
Type | Name | Default | Description |
---|---|---|---|
Boolean | allowFlowReversal | system.allowFlowReversal | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
AbsolutePressure | dp_start | dp_nominal | Guess value of dp = port_a.p - port_b.p |
MassFlowRate | m_flow_start | system.m_flow_start | Guess value of m_flow = port_a.m_flow |
MassFlowRate | m_flow_small | if system.use_eps_Re then system.eps_m_flow * m_flow_nominal else system.m_flow_small | Small mass flow rate for regularization of zero flow |
Boolean | show_T | true | = true, if temperatures at port_a and port_b are computed |
Boolean | show_V_flow | true | = true, if volume flow rate at inflowing port is computed |
final Dynamics | momentumDynamics | Types.Dynamics.SteadyState | Formulation of momentum balance |
Diameter | diameter | Diameter of orifice | |
Real | zeta | Loss factor for flow of port_a -> port_b | |
Boolean | use_zeta | true | = false to obtain zeta from dp_nominal and m_flow_nominal |
MassFlowRate | m_flow_nominal | if system.use_eps_Re then system.m_flow_nominal else 100 * system.m_flow_small | Mass flow rate for dp_nominal |
Pressure | dp_nominal | if not system.use_eps_Re then 1000 else BaseClasses.lossConstant_D_zeta(diameter, zeta) / Medium.density_pTX(Medium.p_default, Medium.T_default, Medium.X_default) * m_flow_nominal ^ 2 | Nominal pressure drop |
Boolean | use_Re | system.use_eps_Re | = true, if turbulent region is defined by Re, otherwise by m_flow_small |
Boolean | from_dp | true | = true, use m_flow = f(dp) else dp = f(m_flow) |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | Fluid connector a (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b | Fluid connector b (positive design flow direction is from port_a to port_b) |
Extends from Modelica.Fluid.Fittings.BaseClasses.QuadraticTurbulent.BaseModel
(Generic pressure drop component with constant turbulent loss factor data and without an icon).
Type | Name | Default | Description |
---|---|---|---|
Boolean | allowFlowReversal | system.allowFlowReversal | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
AbsolutePressure | dp_start | dp_nominal | Guess value of dp = port_a.p - port_b.p |
MassFlowRate | m_flow_start | system.m_flow_start | Guess value of m_flow = port_a.m_flow |
MassFlowRate | m_flow_small | if system.use_eps_Re then system.eps_m_flow * m_flow_nominal else system.m_flow_small | Small mass flow rate for regularization of zero flow |
Boolean | show_T | true | = true, if temperatures at port_a and port_b are computed |
Boolean | show_V_flow | true | = true, if volume flow rate at inflowing port is computed |
final Dynamics | momentumDynamics | Types.Dynamics.SteadyState | Formulation of momentum balance |
final LossFactorData | data | BaseClasses.QuadraticTurbulent.LossFactorData.sharpEdgedOrifice(diameter, leastDiameter, length, alpha) | Loss factor data |
MassFlowRate | m_flow_nominal | if system.use_eps_Re then system.m_flow_nominal else 100 * system.m_flow_small | Nominal mass flow rate |
Boolean | use_Re | system.use_eps_Re | = true, if turbulent region is defined by Re, otherwise by m_flow_small |
Boolean | from_dp | true | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | show_Re | false | = true, if Reynolds number is included for plotting |
Length | length | Length of orifice | |
Diameter | diameter | Inner diameter of pipe (= same at port_a and port_b) | |
Diameter | leastDiameter | Smallest diameter of orifice | |
Angle_deg | alpha | Angle of orifice |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | Fluid connector a (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b | Fluid connector b (positive design flow direction is from port_a to port_b) |
Extends from Modelica.Fluid.Fittings.BaseClasses.QuadraticTurbulent.BaseModelNonconstantCrossSectionArea
(Generic pressure drop component with constant turbulent loss factor data and without an icon, for non-constant cross section area).
Type | Name | Default | Description |
---|---|---|---|
Boolean | allowFlowReversal | system.allowFlowReversal | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
final AbsolutePressure | dp_start | dp_nominal | Guess value of dp = port_a.p - port_b.p |
MassFlowRate | m_flow_start | system.m_flow_start | Guess value of m_flow = port_a.m_flow |
MassFlowRate | m_flow_small | if system.use_eps_Re then system.eps_m_flow * m_flow_nominal else system.m_flow_small | Small mass flow rate for regularization of zero flow |
Boolean | show_T | true | = true, if temperatures at port_a and port_b are computed |
Boolean | show_V_flow | true | = true, if volume flow rate at inflowing port is computed |
final Dynamics | momentumDynamics | Types.Dynamics.SteadyState | Formulation of momentum balance |
final LossFactorData | data | BaseClasses.QuadraticTurbulent.LossFactorData.suddenExpansion(diameter_a, diameter_b) | Loss factor data |
MassFlowRate | m_flow_nominal | if system.use_eps_Re then system.m_flow_nominal else 100 * system.m_flow_small | Nominal mass flow rate |
final Boolean | use_Re | false | = true, if turbulent region is defined by Re, otherwise by m_flow_small |
final Boolean | from_dp | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | show_Re | false | = true, if Reynolds number is included for plotting |
Boolean | show_totalPressures | false | = true, if total pressures are included for plotting |
Boolean | show_portVelocities | false | = true, if port velocities are included for plotting |
Diameter | diameter_a | Inner diameter of pipe at port_a | |
Diameter | diameter_b | Inner diameter of pipe at port_b |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | Fluid connector a (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b | Fluid connector b (positive design flow direction is from port_a to port_b) |
This model is useful if multiple connections shall be made to a port of a volume model exposing a state, like a pipe with ModelStructure av_vb. The mixing is shifted into the volume connected to port_a and the result is propagated back to each ports_b.
If multiple connections were directly made to the volume, then ideal mixing would take place in the connection set, outside the volume. This is normally not intended.
Type | Name | Default | Description |
---|---|---|---|
Integer | nPorts_b | 0 | Number of outlet ports (mass is distributed evenly between the outlet ports |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | |
FluidPorts_b | ports_b[nPorts_b] |
This model is the simplest implementation for a splitting/joining component for three flows. Its use is not required. It just formulates the balance equations in the same way that the connect semantics would formulate them anyways. The main advantage of using this component is, that the user does not get confused when looking at the specific enthalpy at each port which might be confusing when not using a splitting/joining component. The reason for the confusion is that one examines the mixing enthalpy of the infinitesimal control volume introduced with the connect statement when looking at the specific enthalpy in the connector which might not be equal to the specific enthalpy at the port in the "real world".
Extends from Modelica.Fluid.Fittings.BaseClasses.PartialTeeJunction
(Base class for a splitting/joining component with three ports).
Type | Name | Description |
---|---|---|
FluidPort_a | port_1 | |
FluidPort_b | port_2 | |
FluidPort_a | port_3 |
This model introduces a mixing volume into a junction. This might be useful to examine the non-ideal mixing taking place in a real junction.
Extends from Modelica.Fluid.Fittings.BaseClasses.PartialTeeJunction
(Base class for a splitting/joining component with three ports) and Modelica.Fluid.Interfaces.PartialLumpedVolume
(Lumped volume with mass and energy balance).
Type | Name | Default | Description |
---|---|---|---|
Dynamics | energyDynamics | system.energyDynamics | Formulation of energy balance |
Dynamics | massDynamics | system.massDynamics | Formulation of mass balance |
final Dynamics | substanceDynamics | massDynamics | Formulation of substance balance |
final Dynamics | traceDynamics | massDynamics | Formulation of trace substance balance |
AbsolutePressure | p_start | system.p_start | Start value of pressure |
Boolean | use_T_start | true | = true, use T_start, otherwise h_start |
Temperature | T_start | if use_T_start then system.T_start else Medium.temperature_phX(p_start, h_start, X_start) | Start value of temperature |
SpecificEnthalpy | h_start | if use_T_start then Medium.specificEnthalpy_pTX(p_start, T_start, X_start) else Medium.h_default | Start value of specific enthalpy |
MassFraction | X_start[Medium.nX] | Medium.X_default | Start value of mass fractions m_i/m |
ExtraProperty | C_start[Medium.nC] | Medium.C_default | Start value of trace substances |
Volume | V | Mixing volume inside junction |
Type | Name | Description |
---|---|---|
FluidPort_a | port_1 | |
FluidPort_b | port_2 | |
FluidPort_a | port_3 |