modelDetailedPipeFlow
Extends from Modelica.Fluid.Pipes.BaseClasses.FlowModels.PartialGenericPipeFlow (GenericPipeFlow: Pipe flow pressure loss and gravity with replaceable WallFriction package).
Information
This component defines the complete regime of wall friction. The details are described in the UsersGuide. The functional relationship of the friction loss factor λ is displayed in the next figure. Function massFlowRate_dp() defines the "red curve" ("Swamee and Jain"), where as function pressureLoss_m_flow() defines the "blue curve" ("Colebrook-White"). The two functions are inverses from each other and give slightly different results in the transition region between Re = 1500 .. 4000, in order to get explicit equations without solving a non-linear equation.
Additionally to wall friction, this component properly implements static head. With respect to the latter, two cases can be distinguished. In the case shown next, the change of elevation with the path from a to b has the opposite sign of the change of density.
In the case illustrated second, the change of elevation with the path from a to b has the same sign of the change of density.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | m (from PartialDistributedFlow) | 1 | Number of flow segments |
| SI.ReynoldsNumber | Re_turbulent (from PartialStaggeredFlowModel) | 4000 | Start of turbulent regime, depending on type of flow device |
| SI.AbsolutePressure | dp_nominal (from PartialGenericPipeFlow) | Nominal pressure loss (only for nominal models) | |
| SI.MassFlowRate | m_flow_nominal (from PartialGenericPipeFlow) | Nominal mass flow rate | |
| SI.MassFlowRate | m_flow_small (from PartialGenericPipeFlow) | if system.use_eps_Re then system.eps_m_flow*m_flow_nominal else system.m_flow_small | Within regularization if |m_flows| < m_flow_small (may be wider for large discontinuities in static head) |
| Advanced | |||
| Boolean | from_dp (from PartialGenericPipeFlow) | momentumDynamics >= Types.Dynamics.SteadyStateInitial | = true, use m_flow = f(dp), otherwise dp = f(m_flow) |
| Boolean | useUpstreamScheme (from PartialStaggeredFlowModel) | true | = false to average upstream and downstream properties across flow segments |
| Boolean | use_Ib_flows (from PartialStaggeredFlowModel) | momentumDynamics <> Types.Dynamics.SteadyState | = true to consider differences in flow of momentum through boundaries |
| Internal interface | |||
| Integer | n (from PartialStaggeredFlowModel) | 2 | Number of discrete flow volumes |
| Internal interface › Geometry | |||
| Real | nParallel (from PartialStaggeredFlowModel) | Number of identical parallel flow devices | |
| Internal interface › Static head | |||
| SI.Acceleration | g (from PartialStaggeredFlowModel) | system.g | Constant gravity acceleration |
| Internal interface › Assumptions | |||
| Boolean | allowFlowReversal (from PartialStaggeredFlowModel) | system.allowFlowReversal | = true, if flow reversal is enabled, otherwise restrict flow to design direction (states[1] -> states[n+1]) |
| Modelica.Fluid.Types.Dynamics | momentumDynamics (from PartialStaggeredFlowModel) | system.momentumDynamics | Formulation of momentum balance |
| Internal interface › Initialization | |||
| Medium.MassFlowRate | m_flow_start (from PartialStaggeredFlowModel) | system.m_flow_start | Start value of mass flow rates |
| Medium.AbsolutePressure | p_a_start (from PartialStaggeredFlowModel) | Start value for p[1] at design inflow | |
| Medium.AbsolutePressure | p_b_start (from PartialStaggeredFlowModel) | Start value for p[n+1] at design outflow | |
| Diagnostics | |||
| Boolean | show_Res (from PartialStaggeredFlowModel) | false | = true, if Reynolds numbers are included for plotting |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Medium.ThermodynamicState | states (from PartialStaggeredFlowModel) | Thermodynamic states along design flow | |
| SI.Velocity | vs (from PartialStaggeredFlowModel) | Mean velocities of fluid flow | |
| SI.Area | crossAreas (from PartialStaggeredFlowModel) | Cross flow areas at segment boundaries | |
| SI.Length | dimensions (from PartialStaggeredFlowModel) | Characteristic dimensions for fluid flow (diameters for pipe flow) | |
| Modelica.Fluid.Types.Roughness | roughnesses (from PartialStaggeredFlowModel) | Average height of surface asperities | |
| SI.Length | dheights (from PartialStaggeredFlowModel) | Height(states[2:n]) - Height(states[1:n-1]) | |
| Modelica.Fluid.System | system (from PartialDistributedFlow) | System properties | |
| SI.Length | pathLengths (from PartialDistributedFlow) | Lengths along flow path | |
| Medium.MassFlowRate | m_flows (from PartialDistributedFlow) | Mass flow rates between states | |
| SI.Momentum | Is (from PartialDistributedFlow) | Momenta of flow segments | |
| SI.Force | Ib_flows (from PartialDistributedFlow) | Flow of momentum across boundaries | |
| SI.Force | Fs_p (from PartialDistributedFlow) | Pressure forces | |
| SI.Force | Fs_fg (from PartialDistributedFlow) | Friction and gravity forces | |
| Medium.Density | rhos (from PartialStaggeredFlowModel) | if use_rho_nominal then fill(rho_nominal, n) else Medium.density(states) | |
| Medium.Density | rhos_act (from PartialStaggeredFlowModel) | Actual density per segment | |
| Medium.DynamicViscosity | mus (from PartialStaggeredFlowModel) | if use_mu_nominal then fill(mu_nominal, n) else Medium.dynamicViscosity(states) | |
| Medium.DynamicViscosity | mus_act (from PartialStaggeredFlowModel) | Actual viscosity per segment | |
| SI.Pressure | dps_fg (from PartialStaggeredFlowModel) | Pressure drop between states | |
| SI.ReynoldsNumber | Res (from PartialStaggeredFlowModel) | Modelica.Fluid.Pipes.BaseClasses.CharacteristicNumbers.ReynoldsNumber(vs, rhos, mus, dimensions) | Reynolds numbers |
| Medium.MassFlowRate | m_flows_turbulent (from PartialStaggeredFlowModel) | {nParallel*(crossAreas[i] + crossAreas[i + 1])/(dimensions[i] + dimensions[i + 1])*mus_act[i]*Re_turbulent for i in 1:n - 1} | Start of turbulent flow |
| SI.Length | pathLengths_internal (from PartialGenericPipeFlow) | pathLengths used internally; to be defined by extending class | |
| SI.ReynoldsNumber | Res_turbulent_internal (from PartialGenericPipeFlow) | Re_turbulent*ones(n - 1) | Re_turbulent used internally; to be defined by extending class |